嵌入式C語言程序調試宏使用技巧!

嵌入式大雜燴 2023-07-12 20:46

01.調試相關的宏

在Linux使用gcc編譯程序的時候,對于調試的語句還具有一些特殊的語法。gcc編譯的過程中,會生成一些宏,可以使用這些宏分別打印當前源文件的信息,主要內容是當前的文件、當前運行的函數和當前的程序行。

具體宏如下:

__FILE__??當前程序源文件?(char*)
__FUNCTION__??當前運行的函數?(char*)
__LINE__??當前的函數行?(int)

這些宏不是程序代碼定義的,而是有編譯器產生的。這些信息都是在編譯器處理文件的時候動態產生的。

測試示例:

#include?

int?main(void)
{
????printf("file:?%s\n",?__FILE__);
????printf("function:?%s\n",?__FUNCTION__);
????printf("line:?%d\n",?__LINE__);

????return?0;
}

02.# 字符串化操作符

在gcc的編譯系統中,可以使用#將當前的內容轉換成字符串。

程序示例:

#include?

#define?DPRINT(expr)?printf("
%s?=?%d\n",?#expr,?expr);

int?main(void)
{
????int?x?=?3;
????int?y?=?5;

????DPRINT(x?/?y);
????DPRINT(x?+?y);
????DPRINT(x?*?y);
????
????return?0;
}

執行結果:

deng@itcast:~/tmp$?gcc?test.c?
deng@itcast:~/tmp$?./a.out??
x?/?y?=?0
x?+?y?=?8
x?*?y?=?15

#expr表示根據宏中的參數(即表達式的內容),生成一個字符串。該過程同樣是有編譯器產生的,編譯器在編譯源文件的時候,如果遇到了類似的宏,會自動根據程序中表達式的內容,生成一個字符串的宏。

這種方式的優點是可以用統一的方法打印表達式的內容,在程序的調試過程中可以方便直觀的看到轉換字符串之后的表達式。具體的表達式的內容是什么,有編譯器自動寫入程序中,這樣使用相同的宏打印所有表達式的字符串。

//打印字符
#define?debugc(expr)?printf("?%s?=?%c\n",?#expr,?expr)
//打印浮點數
#define?debugf(expr)?printf("?%s?=?%f\n",?#expr,?expr)
//按照16進制打印整數
#define?debugx(expr)?printf("?%s?=?0X%x\n",?#expr,?expr);

由于#expr本質上市一個表示字符串的宏,因此在程序中也可以不適用%s打印它的內容,而是可以將其直接與其它的字符串連接。因此,上述宏可以等價以下形式:

//打印字符
#define?debugc(expr)?printf("?#expr?=?%c\n",?expr)
//打印浮點數
#define?debugf(expr)?printf("?#expr?=?%f\n",?expr)
//按照16進制打印整數
#define?debugx(expr)?printf("?#expr?=?0X%x\n",?expr);

總結:

#是C語言預處理階段的字符串化操作符,可將宏中的內容轉換成字符串。

03.## 連接操作符

在gcc的編譯系統中,##是C語言中的連接操作符,可以在編譯的預處理階段實現字符串連接的操作。

程序示例:

#include?

#define?test(x)?test##x

void?test1(int?a)
{
????printf("test1?a?=?%d\n",?a);
}

void?test2(char?*s)
{
????printf("test2?s?=?%s\n",?s);
}

int?main(void)
{
????test(1)(100);

????test(2)("hello?world");
????
????return?0;
}

上述程序中,test(x)宏被定義為test##x, 他表示test字符串和x字符串的連接。

在程序的調試語句中,##常用的方式如下

#define?DEBUG(fmt,?args...)?printf(fmt,?##args)

替換的方式是將參數的兩個部分以##連接。##表示連接變量代表前面的參數列表。使用這種形式可以將宏的參數傳遞給一個參數。args…是宏的參數,表示可變的參數列表,使用##args將其傳給printf函數.

總結:

##是C語言預處理階段的連接操作符,可實現宏參數的連接。

04.調試宏第一種形式

一種定義的方式:

#define?DEBUG(fmt,?args...)?????????????\
????{???????????????????????????????????\
????printf("file:%s?function:?%s?line:?%d?",?__FILE__,?__FUNCTION__,?__LINE__);\
????printf(fmt,?##args);????????????????\
????}

程序示例:

#include?

#define?DEBUG(fmt,?args...)?????????????\
????{???????????????????????????????????\
????printf("file:%s?function:?%s?line:?%d?",?__FILE__,?__FUNCTION__,?__LINE__);\
????printf(fmt,?##args);????????????????\
????}



int?main(void)
{
????int?a?=?100;
????int?b?=?200;

????char?*s?=?"hello?world";
????DEBUG("a?=?%d?b?=?%d\n",?a,?b);
????DEBUG("a?=?%x?b?=?%x\n",?a,?b);
????DEBUG("s?=?%s\n",?s);
????
????return?0;
}

總結:

上面的DEBUG定義的方式是兩條語句的組合,不可能在產生返回值,因此不能使用它的返回值。

05.調試宏的第二種定義方式

調試宏的第二種定義方式

#define?DEBUG(fmt,?args...)?????????????\
????printf("file:%s?function:?%s?line:?%d?"fmt,?\
????__FILE__,?__FUNCTION__,?__LINE__,?##args)

程序示例

#include?

#define?DEBUG(fmt,?args...)?????????????\
????printf("file:%s?function:?%s?line:?%d?"fmt,?\
????__FILE__,?__FUNCTION__,?__LINE__,?##args)



int?main(void)
{
????int?a?=?100;
????int?b?=?200;

????char?*s?=?"hello?world";
????DEBUG("a?=?%d?b?=?%d\n",?a,?b);
????DEBUG("a?=?%x?b?=?%x\n",?a,?b);
????DEBUG("s?=?%s\n",?s);
????
????return?0;
}

總結:

fmt必須是一個字符串,不能使用指針,只有這樣才可以實現字符串的功能。

06.對調試語句進行分級審查

即使定義了調試的宏,在工程足夠大的情況下,也會導致在打開宏開關的時候在終端出現大量的信息。而無法區分哪些是有用的。這個時候就要加入分級檢查機制,可以定義不同的調試級別,這樣就可以對不同重要程序和不同的模塊進行區分,需要調試哪一個模塊就可以打開那一個模塊的調試級別。

一般可以利用配置文件的方式顯示,其實Linux內核也是這么做的,它把調試的等級分成了7個不同重要程度的級別,只有設定某個級別可以顯示,對應的調試信息才會打印到終端上。

可以寫出一下配置文件

[debug]
debug_level=XXX_MODULE

解析配置文件使用標準的字符串操作庫函數就可以獲取XXX_MODULE這個數值。

int?show_debug(int?level)
{
????if?(level?==?XXX_MODULE)
????{
????????#define?DEBUG(fmt,?args...)?????????????\
????????printf("file:%s?function:?%s?line:?%d?"fmt,?\
????????__FILE__,?__FUNCTION__,?__LINE__,?##args)???????

????}
????else?if?(...)
????{
????????....
????}
}

07.條件編譯調試語句

在實際的開發中,一般會維護兩種源程序,一種是帶有調試語句的調試版本程序,另外一種是不帶有調試語句的發布版本程序。然后根據不同的條件編譯選項,編譯出不同的調試版本和發布版本的程序。

在實現過程中,可以使用一個調試宏來控制調試語句的開關。

#ifdef?USE_DEBUG
????????#define?DEBUG(fmt,?args...)?????????????\
????????printf("file:%s?function:?%s?line:?%d?"fmt,?\
????????__FILE__,?__FUNCTION__,?__LINE__,?##args)??

#else
??#define?DEBUG(fmt,?args...)

#endif

如果USE_DEBUG被定義,那么有調試信息,否則DEBUG就為空。

如果需要調試信息,就只需要在程序中更改一行就可以了。

#define?USE_DEBUG
#undef?USE_DEBUG

定義條件編譯的方式使用一個帶有值的宏

#if?USE_DEBUG
????????#define?DEBUG(fmt,?args...)?????????????\
????????printf("file:%s?function:?%s?line:?%d?"fmt,?\
????????__FILE__,?__FUNCTION__,?__LINE__,?##args)??

#else
??#define?DEBUG(fmt,?args...)

#endif

可以使用如下方式進行條件編譯

#ifndef?USE_DEBUG
#define?USE_DEBUG?0
#endif

08.使用do…while的宏定義

使用宏定義可以將一些較為短小的功能封裝,方便使用。宏的形式和函數類似,但是可以節省函數跳轉的開銷。如何將一個語句封裝成一個宏,在程序中常常使用do…while(0)的形式。

#define?HELLO(str)?do?{?\
printf("hello:?%s\n",?str);?\
}while(0)

程序示例:

int?cond?=?1;
if?(cond)
????HELLO("true");
else
????HELLO("false");

09.代碼剖析

對于比較大的程序,可以借助一些工具來首先把需要優化的點清理出來。接下來我們來看看在程序執行過程中獲取數據并進行分析的工具:代碼剖析程序。

測試程序:

#include?


#define?T?100000

void?call_one()
{
????int?count?=?T?*?1000;
????while(count--);
}

void?call_two()
{
????int?count?=?T?*?50;
????while(count--);
}

void?call_three()
{
????int?count?=?T?*?20;
????while(count--);
}


int?main(void)
{
????int?time?=?10;

????while(time--)
????{
????????call_one();
????????call_two();
????????call_three();
????}
????
????return?0;
}

編譯的時候加入-pg選項:

deng@itcast:~/tmp$?gcc?-pg??test.c?-o?test

執行完成后,在當前文件中生成了一個gmon.out文件。

deng@itcast:~/tmp$?./test??
deng@itcast:~/tmp$?ls
gmon.out??test??test.c
deng@itcast:~/tmp$?

使用gprof剖析主程序:

deng@itcast:~/tmp$?gprof?test
Flat?profile:

Each?sample?counts?as?0.01?seconds.
??%???cumulative???self??????????????self?????total???????????
?time???seconds???seconds????calls??ms/call??ms/call??name????
?95.64??????1.61?????1.61???????10???160.68???160.68??call_one
??3.63??????1.67?????0.06???????10?????6.10?????6.10??call_two
??2.42??????1.71?????0.04???????10?????4.07?????4.07??call_three

其中主要的信息有兩個,一個是每個函數執行的時間占程序總時間的百分比,另外一個就是函數被調用的次數。通過這些信息,可以優化核心程序的實現方式來提高效率。

當然這個剖析程序由于它自身特性有一些限制,比較適用于運行時間比較長的程序,因為統計的時間是基于間隔計數這種機制,所以還需要考慮函數執行的相對時間,如果程序執行時間過短,那得到的信息是沒有任何參考意義的。

將上訴程序時間縮短:

#include?


#define?T?100

void?call_one()
{
????int?count?=?T?*?1000;
????while(count--);
}

void?call_two()
{
????int?count?=?T?*?50;
????while(count--);
}

void?call_three()
{
????int?count?=?T?*?20;
????while(count--);
}


int?main(void)
{
????int?time?=?10;

????while(time--)
????{
????????call_one();
????????call_two();
????????call_three();
????}
????
????return?0;
}

剖析結果如下:

deng@itcast:~/tmp$?gcc?-pg?test.c?-o?test
deng@itcast:~/tmp$?./test??
deng@itcast:~/tmp$?gprof?test
Flat?profile:

Each?sample?counts?as?0.01?seconds.
?no?time?accumulated

??%???cumulative???self??????????????self?????total???????????
?time???seconds???seconds????calls??Ts/call??Ts/call??name????
??0.00??????0.00?????0.00???????10?????0.00?????0.00??call_one
??0.00??????0.00?????0.00???????10?????0.00?????0.00??call_three
??0.00??????0.00?????0.00???????10?????0.00?????0.00??call_two

因此該剖析程序對于越復雜、執行時間越長的函數也適用。

那么是不是每個函數執行的絕對時間越長,剖析顯示的時間就真的越長呢?可以再看如下的例子

#include?


#define?T?100

void?call_one()
{
????int?count?=?T?*?1000;
????while(count--);
}

void?call_two()
{
????int?count?=?T?*?100000;
????while(count--);
}

void?call_three()
{
????int?count?=?T?*?20;
????while(count--);
}


int?main(void)
{
????int?time?=?10;

????while(time--)
????{
????????call_one();
????????call_two();
????????call_three();
????}
????
????return?0;
}

剖析結果如下:

deng@itcast:~/tmp$?gcc?-pg?test.c?-o?test
deng@itcast:~/tmp$?./test??
deng@itcast:~/tmp$?gprof?test
Flat?profile:

Each?sample?counts?as?0.01?seconds.
??%???cumulative???self??????????????self?????total???????????
?time???seconds???seconds????calls??ms/call??ms/call??name????
101.69??????0.15?????0.15???????10????15.25????15.25??call_two
??0.00??????0.15?????0.00???????10?????0.00?????0.00??call_one
??0.00??????0.15?????0.00???????10?????0.00?????0.00??call_three

總結:

在使用gprof工具的時候,對于一個函數進行gprof方式的剖析,實質上的時間是指除去庫函數調用和系統調用之外,純碎應用部分開發的實際代碼運行的時間,也就是說time一項描述的時間值不包括庫函數printf、系統調用system等運行的時間。這些實用庫函數的程序雖然運行的時候將比最初的程序實用更多的時間,但是對于剖析函數來說并沒有影響。

10.附錄

嵌入式Linux上的C語言編程實踐

原文鏈接:https://blog.csdn.net/dengjin20104042056/article/details/107692688

本文來源網絡,免費傳達知識,版權歸原作者所有。如涉及作品版權問題,請聯系我進行刪除。

往期推薦

《嵌入式Linux驅動大全》

在公眾號聊天界面回復1024,可獲取嵌入式資源

嵌入式大雜燴 專注于嵌入式技術,包括但不限于C/C++、嵌入式、物聯網、Linux等編程學習筆記,同時,內包含大量的學習資源。歡迎關注,一同交流學習,共同進步!
評論
  • 在物聯網從“萬物互聯”邁向“萬物智聯”的進程中,LTE Cat.1憑借其在速率、成本與網絡覆蓋之間的完美平衡,正成為中低速物聯網市場的絕對主力。隨著2G/3G網絡的逐步退網以及新國標對終端設備智能化、定位功能的強制要求,Cat.1模組迎來了爆發式的增長窗口。在這一關鍵節點,基于華為海思Hi2131芯片設計的LTE Cat.1模組,憑借其在能效、射頻、架構及物理規格上的底層創新,成功打破了“高性能必高功耗”的傳統魔咒,為行業提供了極具競爭力的連接最優解。核心技術優勢:重塑Cat.1能效與連接標桿海
    用戶1778981989717 2026-08-05 21:04 158瀏覽
  • 文:杜杰編輯:侯煜當地時間7月28日,美國特朗普政府落地最新科技封鎖政策,美國聯邦通信委員會(FCC)正式更新《受管制清單》,新增兩大類設備——境外生產的先進機器人設備、境外生產的聯網電力逆變器。FCC在官方情況說明書中明確,該類境外制造產品,“會對美國國家安全或美國民眾的人身安全構成無法承受的風險”。本次新規設置明確豁免機制:經美國國防部(DoW)、電力逆變器品類經美國國土安全部(DHS)審核并授予“有條件批準”,認定對應設備品類不存在重大安全風險,即可獲得準入豁免。同時政策嚴格執行新老劃斷原
    華爾街科技眼 2026-08-03 21:28 321瀏覽
  • ?摘要:低價大流量卡正全面退市,政策收緊已成定局。面對傳統號卡的不確定性,隨身WiFi憑借穩定連接、多設備共享、獨立設備和靈活套餐等優勢,成為務實可靠的備選方案。1、流量卡黃金時代要結束了通信行業正迎來一場前所未有的“地震式”調整——曾讓無數用戶追捧的低價大流量卡,正在全速退出各大平臺。這早已不是一次普通的競合,而是一場趨勢性的行業洗牌。回望過去,19元200G的神卡,那時真是“睡著都能笑醒”,便宜到不敢相信,爽到忍不住炫耀。那些日子,好像隨便刷、隨便看,流量自由觸手可及。可如今,回頭再看,那種
    愛上電路設計 2026-08-03 10:21 128859瀏覽
  • 在前六期中,我們已經分別討論了 CRA 的適用范圍、整體影響、漏洞通報義務、風險評估與技術文檔證據鏈、第三方組件與 SBOM 供應鏈治理,以及產品上市后的支持期、安全更新、用戶說明和終止支持管理。到這里,企業已經能夠回答幾個核心問題:產品是否落入 CRA 適用范圍,產品由哪些組件構成,企業如何證明自己在設計、開發和上市前采取了必要的安全措施,以及產品上市后如何持續維護和安全下線。但對于真正準備落地 CRA 合規的企業來說,還有一個更現實的問題:CRA 的法規條文相對原則化,企業應當如何把“網絡安
    虹科云科技 2026-08-03 16:51 137594瀏覽
  • 在EMC測試過程中,傳導發射(Conducted Emission,CE)超標是工程師最常遇到的問題之一。更令人頭疼的是,同樣的超標曲線背后,可能對應著完全不同的干擾機理:有的是差模噪聲沿電源回路傳播,有的是共模電流通過寄生路徑耦合,還有些問題甚至并非來自電源本身,而是負載、電纜布局或接地結構引起的連鎖反應。 · 150kHz~1MHz 超標:多為差模噪聲為主,干擾沿火線-零線回路傳輸。 · 1MHz~30MHz 超標:通常共模噪聲占主導,干擾通過火線/零線對地回路傳播。 如果條件允許,用電流探
    譽磁電磁兼容EMC 2026-07-31 18:45 495瀏覽
  • 摘要在防爆電氣設計中,只參照芯數選型而忽略額定載流量,長期滿負荷運行會出現插頭發熱、接觸面氧化、IP67 密封受熱老化等問題。結合常用 3 針 3 孔、4 芯、5PIN、8PIN 圓形防爆連接器,制作分級電流參數對照表,區分冷壓免焊接、焊接兩種接線結構的安全載流數值,設置合理電流冗余系數,搭配使用環境修正參數,規范防爆接近開關連接器、防爆法蘭插座的選型計算方式。關鍵詞圓形防爆連接器,載流參數表,防爆法蘭插座,防爆端子接頭,IP67 防爆防水接插件1 產品概述圓形防爆連接器觸點載流能力由插針直徑、
    kyfbest科迎法電氣 2026-08-03 09:18 128630瀏覽
  •        很多人只見過封裝在SMD外殼里的小尺寸晶振,卻不知道一顆2016、1612甚至1210封裝的微型石英晶振,從一塊巴掌大的石英原礦,到最終能穩定起振的成品,要經過十幾道精密工序。它內部的石英晶片厚度最薄不到20微米,比普通A4紙的1/5還薄,整個生產過程里哪怕0.1微米的誤差,都會直接廢掉整批產品,這也是小尺寸晶振過去長期依賴進口,國內廠商花了十幾年才啃下量產硬骨頭的核心原因。1. 原石定向切割:0.01度的角度誤差都不能有小尺寸晶振的第一步,
    TKD泰晶科技 2026-08-07 08:43 348瀏覽
  • 導語在現代高速數字電路設計中,信號的完整性已不僅是理想波形推演,而是一場與物理非理想特性正面博弈的工程實踐。濾波器芯片作為凈化傳輸鏈路的關鍵屏障,其核心挑戰在于:能否有效識別并濾除那些隱匿在電平跳變過程中的亞納秒級瞬態脈沖干擾,這類干擾持續極短,卻足以在高速鏈路中引發誤觸發。然而,傳統函數發生器受限于采樣率與邊沿速率,根本無法忠實復現如此狹窄且陡峭的異常波形。針對此困境,德思特TS-AWG7000系列任意波形發生器以17 GS/s采樣率與50 ps原生邊沿速度,為瞬態脈沖提供精細刻畫,配合SPG
    德思特測試測量 2026-08-05 14:06 5瀏覽
  •                                                                        
    廣州鐵金剛 2026-08-06 17:44 88681瀏覽
  • 做藍牙音箱的工程師大概都碰過這個局面。產品要連手機放歌,要本地播開機提示音和按鍵音,還要接 App 做配網和狀態上報。三件事拆開,早先的常規做法是音頻藍牙一顆料、數傳藍牙一顆料、本地播放再掛一顆小 MCU 加一片 Flash。板子越畫越大,BOM 越算越貴,待機電流和固件工作量也跟著漲。WT2605C 出來以后,這套需求可以集成到一顆芯片,就是 WT2605C-32N,該芯片采用QFN32 封裝,4×4 毫米,把音頻藍牙、BLE 數傳和 MP3 本地播放三樣全包了。對藍牙音箱來說,最實在的好處就
    唯創知音語音芯片 2026-08-06 15:14 255瀏覽
  • 產品使用18V供電,配套4串鋰離子電池,需要設計一個充電器。因為輸入18V,電池最高 16.8V,壓差僅 1.2V。因為壓差太小。使用開關型的充電控制芯片不穩定。嘗試自行設計一個。整體采用分立三極管 + TL431架構,分4個功能單元:使能控制回路、限流環路、TL431 精密恒壓反饋環路、PNP 功率管主功率輸出回路;實現完整鋰電池充電邏輯。使能控制回路按鍵按下:5V 電壓經 R12 (2kΩ) 送入 NPN 管 Q3 基極,Q3 飽和導通,對地拉低 R1、R2 組成的分壓控制節點電位;該節點直
    southcreek 2026-08-07 13:45 302瀏覽
我要評論
0
點擊右上角,分享到朋友圈 我知道啦
請使用瀏覽器分享功能 我知道啦
主站蜘蛛池模板: 2对1:三人一次性体检韩国伦理 | 木子凛子电影免费观看 | 电影《恋爱之瘾》免费观看| 战狼16欧式少女| 海外行动电视剧免费观看| 苹果在线观看高清电视剧 | 无神之地| 不戴套交换系列17部分吴琴| 孤单的儿媳免费观看全集| 冰湖重生| 《初体验5》完整版免费观| 哈利波特与魔法石百度影音| 夜访吸血鬼高清| 大理市| 非亲父子演员表| 日韩电影《女律师的坠落》| 纯真时代几分做了| 媳妇的美好时代2| 满天星电影无删减完整版陈宝莲| 银娇在线| 木下凛凛子未删减版电影在线观看 | 村上沙兽皇电影高清下载| 全球冠军:电竞大神全集免费| 《有翡》观看免费完整版| 电视剧今生有你全集免费观看| 公之浮之中字5| 男女一起愁愁愁免费观看全集高清完整| 热带雨电影| 满清十大酷形| 潘展乐从第7追到了第2| 四海盟约 毛阿敏| 替夫还债3完整版观看| 孤注一掷张艺兴在线播放免费| 趟过男人河的女人电视连续剧| 东北警察故事| 折腰电视剧观看在线播放| 日本熟睡中被义子侵犯| 电影黄河绝恋| 火烧岛 电影| 《护宝寻踪》在线观看| 日本军舰进行曲| 美艳的房东太与阿宾91| 亲爱的自己48集免费观看完整版| 《需要爸爸播种美国》在线观看 | 新白娘子传奇50集完整版观看| 战狼女版6在线观看| 天地粮人电视剧| 少女动漫第四集在线观看免费| 白浊女教师在线观看| 父亲的爱情| 诱人的小峓子BD中文电影| 福尔摩斯第二季| 法国版电影满天星HD版女超人| 美丽的水蜜桃2英文翻译3| 无情冷酷无理取闹| 盐池县| 兰陵王的歌曲| 牙医姐妹在线观看 赤子板栗| 龙马精神免费高清观看完整版| 燃冬电视剧在线观看完整版免费| 高清《克劳德夫人》电影| 县委大院电视剧免费观看| xl司令免费高清全集| 远远的爱结局| 美景之屋6普通话版| 辐射美剧| 两个爸爸电视剧全集观看 | 二级三级配电箱区别| 成龙现身巴黎传递残奥会圣火| 娃娃脸9姑娘9| 双枪李向阳| 双女任务在线观看免费高清英语版| 猎狼者 电视剧| 双女任务 在线| 《僵尸叔叔》国语版免费观看 | 大奥电视剧| 春原未来| 危机四伏在线观看免费观看完整版| 六魔女下载| 人世间电视剧在线观看免费雷佳音| oh 透明人间| 战狼6欧美版免费观看完整版| 了不起的女孩电视剧| 满天星翻拍《无法无天》| 一笑随歌40集全免费播放| omoflow| 爱情男女全集免费观看免费| jizz在线播放| 放羊女孩2免费版| 侵犯女教师白峰美羽HD| 恶魔少爷别吻我电视剧第二季| 满天星麦乐迪电影在线观看完整免费 | 电影《莫陌1》在线观看免费| 出差妻子被巨物社长侵犯韩国电影| 《年轻女教师2》在线播放| 蒙面超人| 周二谋杀定律| 电影《牙医姐妹》播放| 大奉打更人电视剧在线观看免费| 向井蓝在线观看| 神犬小七第三季免费观看完整版| 隔壁的女孩3在线观看| 成全完整版动漫高清免费| 全美超模大赛第20季| 《麦乐迪女超人》完整版在线观看电影| 公主日记1免费观看完整版英语| 遇见王沥川40集完整版| 却宅男女| 不要见怪电影| 按摩店的特殊待遇在线观看| 奇妙儿媳妇苏玥是谁| 荣誉守则2013| 剑蝶电视剧全集| 公主日记在线观看| 恨锁金瓶国语电影在线播放| 我是刑警13电视剧免费收看| 广丰县| 交换上司的秘书免费看| 人猿泰山《激战丛林》完整版意大利| 乔迪-加森| 插曲的痛30集全集免费播放电影日本| 我是传说国语版| 恶魔的教育| 广场舞心在跳情在烧16步| 想你 韩剧百度影音| 噶尔县| 小鹏奇啪行| 美容院5HD| 黄金小子| 我的XL司令第一季真人版| 闪婚大佬后免费全集在线观看| 聊斋之月宫宝盒电影| 爱人 下载| 鹿鼎记周星驰国语| 大唐玄奘 电影| 庖丁解牛朗读| 战狼6双人版高清下载| 金瓶梅金瓶| 战狼6免费观看高清完整版| 我是特种兵之火凤凰在线观看| 借爸爸的种子(美囯版)| 电视剧命运交响曲全集| 年轻老师4韩国手机在线| 豚鼠系列1:恶魔实验完整版| 灵魂摆渡2 电视剧| 怒火十二小时电影免费播放| 六指琴魔在线观看完整版免费| 维修人员的培训 在线| 踏血寻梅| 女员工付出5中字| 宿醉2在线观看| 中华软功| 搞笑大连话| 《三十而已》电视剧| 被冲走前 父亲试图将孩子抛上岸| 袁浩然怎么了最新消息| 电视剧闯关东免费观看全集高清| 朋友的妈妈线观高清2电影| 《朋友年轻的妈妈》韩国| 光阴里的故事大结局| 捉妖记bt| 《无憾》在线完整观看坎贝奇电影在| 四虎院影亚洲永久| 禁止的爱善良的小峓子韩剧观看 | 《被可怕的科长欺负的新人》公| 河东狮吼电影| 三级《出差被同房》| 爱有来生在线| 饥饿的阿姨是韩国还是日本 | 欧美电影短发房产女销售| 女人被躁到高潮嗷嗷叫69| 交易凯登克罗斯的电影| 盲点第一季全集免费观看| 喜洋洋与灰太狼羊羊运动会| 延禧攻略番外| 四方极爱电视剧免费观看高清| 迷宫的十字路口下载| 火蓝刀锋2之雄鹰展翅| 昆仑神宫潘粤明什么时候上映| 断箭行动免费| 瓜达卢佩玫瑰原版免费观看| 母亲5免费高清电视| 被黑人强伦轩| 尖峰时刻3国语高清| 《医生特殊的治疗》5| 老炮儿未删减版| 女飞行员(美国)满天星女版 | 无与伦比的美丽电视剧在线观看| 蝴蝶与鲸鱼| 无人观看高清电视剧免费| 我的漂亮妻子4星空| 对你不止是喜欢你电视剧免费观看 | 恋爱暴君动漫| 女子私人监狱法版免费| 报告老板之豪言壮旅04| 坎贝奇无憾1080P免费看| 《731》电影结局| 斗罗大陆免费下载| 网络情缘原唱| 凯·帕克的经典1984第6| 我是老板| 神奇女侠在线观看| 仁心解码第一部| 使徒行者优酷| 吕继宏歌曲咱老百姓| 巴西电影《营销技巧》| 隐形的亿万富翁电影免费观看| 第二个农场的姑娘们| 小敏家电视剧免费观看第一季| 三年大片高清观看完整版| 高清另一个贝内特家的姐妹| 美丽小的瘦子4| 爱我几何电影莫妮卡| 张警官第一集在线观看 | 父母爱情电视剧在线观看| 民间小调老来难| 好妈妈13中汉字| 我爱男保姆全集下载| 黑白配免费观看全集高清| 骄阳伴我电视剧免费观看| 女超人| 男艺伎回忆录| 一路繁花综艺| 天使的胆量:高中生| 野花电影免费观看完整| 电影在线观看完整版高清免费观看| 麦乐迪在线观看完整免费| 那小子不可爱电视剧在线观看| 需要爸爸的种孑| 少女免费观看完整电视电影| 美发沙龙2| 保姆用废弃尿垫给老人擦嘴被判刑| 战狼6高清完整免费观看国语电影| 一仆二主电视剧 全集| 《法国航空》3| 出轨的女人全集| 新版寒冰出装| 弟债妻还真人版| 更好的生活| 怒火重案高清免费观看| 做aj的电视剧大全香港| 快乐水果之称的水果是什么| 妈妈的职业5韩剧| 医武弃少短剧全集| 功夫厨神| 惊鸿故人归短剧免费观看全集高清版| 非凡医者演员表| 超能失控qvod| 菠萝菠萝蜜在线观看一区| 从红月开始动漫免费| 父子老爷车电影| 神话片头曲| 女销售的秘密韩国电影 | 朋友的老婆1| 日韩做Aj的视频免费观看| 伞娘传奇电视剧全集剧情| 女佐罗在线看| 小妖怪的夏天动画片| 电影浪漫女家教正版货| 小小的我演员表| 已婚妇女的下午| 孤注电影完整版免费观看| 酒店1-100集全免费播放| 重游母亲桃花源| 战狼6免费观看高清完整版| 焦土之城剧情| 爸爸播种籽2完整版在线看| 男与女在线观看| 女超人麦迪娜1080p满天星版| 九年级英语unit9| 公浮之手中2(国语版)| 军嫂逆袭:致富养娃两不误短剧全集| 九七电影网| 《趣塔德庄园》| 斗破苍穹年番免费动漫| 夏日重现动漫| 布拉芙夫人在线免费观看| 我的错误第二季| 猎人电视剧| 电影 情书| 落跑甜心全集电视剧大结局| 硅胶娃娃实战效果视频| 炮弹飞车1| 父女因为爱情| 硬汉1下载| 水暖工韩国伦理电影| 电视剧烈火凤凰| 年轻儿媳妇电影日本| 曝江西一河中现碎尸| 高压监狱2成人版| 好想好想谈恋爱电视剧| 由良千岁和科| 西瓜视频免费| 电影《需要爸爸播种美国》女演员还| 乡下 乱 仑| 女员的付出中字1230| 无限地带23| 战狼6免费高清版999加拿大版动漫| 创可贴电影韩国免费观看| 金瓶梅在线观看免费完整视频国语| 惊天铁案在线观看| 浪客行高清| 只愿君心似我心短剧免费观看全集| 《匿杀》| 活死人之夜| 间谍过家家动画在线观看免费版| 神断狄仁杰1| 喜爱夜蒲免费在线观看| id002经典热门电视剧在线观看| 金瓶梅电影百度影音| 飞机上的性K8服务| 赵寅成霜花店| 花姑娘免费观看| 治疗室护士| 法国空乘11| 关于爱在线观看| 惊天营救3免费观看完整| 法版行政助理| 铁血独立营电视剧| 漂亮的保姆韩国完整版观看| 粉红大白菜正宗版完整版| 樱兰高校男公关部真人版| 巜人妻初次按摩2视频| 彭山县| 危机龙潭之战电影完整高清| 不良义姐| 傲世潜龙王东98集全| 高压监狱2在线观看免费版高清 | 沧元图动漫在线观看完整版免费| 傻儿传奇电视剧全集| 超人正义联盟第四季| 《热血》免费观看| 越南女兵| 高清《葬送的芙莉莲》| 花子vs倔强驱魔无删减版立即播放| 长相思40一60集免费| 蛋饼夫妇| 我们的千阙歌电视剧| 与我同眠 bt| 星莱克尔最经典电影| 《僵尸叔叔》国语版免费观看| 温柔插曲的痛| 关于我们之间的事| 白峰美羽在线视频| 诱人的飞行韩国电影| 壮志凌云2011连接| 柯南剧场版国语版全集| 隐形帽子高清在线观看| 《维修工艳遇》2007| 修武县| 白狐电影在线观看| 电影卖春| 白峰电影正版免费观看平台| 小sao货几天没c水就这么多| 姐妹牙医在线看免费完整版| 变形计他乡有爱| 大姚县| 高中生补习班| 荷兰到底有多开放| 需要爸爸播种 - 在线追剧| 欲百度影音| 瓦嘎日韩三级片| 分手后程医生哭出鼻涕泡短剧免费 | 洪武大案电视剧| 高清《妻子》迷妹网| 壮士出川之铁血征途高清 | 麦乐迪《家庭矛盾》| 高清《千与千寻》普通话版| 南靖县| 电视剧妈祖免费观看全集| 巨星嫁到| 游轮梦魇| 王者之风| 综合色色网修理工的艳遇 | 金价狂飙 8斤黄金变现174万| 微笑时你很美电视剧在线观看| 武朝迷案| 法国空姐四电影| 飞屋环游记 高清| 国风按摩院1-5季最新更新内容 | 井冈山下种南瓜伴奏| 情陷夜中环粤语| 铿铿锵锵免费观看在线观看| 大江大河第一部全集免费观看| 战狼6免费下载完整版国语高清| 电影农村中老年妇女乳房按摩 | 九九重阳今又重阳| 《法国伦理女警》完整版| 白峰美羽真丝睡衣的诱惑乱电影| 最后的99天下载| 美容院的特殊待遇》| 初恋时间1到6集免费观看| 被强奸的妻子2| 韩国男生女生愁愁愁电视剧在线观看| 宙斯之子赫拉克勒斯电影| 高清杜塞未删减| 七情六欲韩国版| 电影伦理《法国护士长》2006| 欢乐家长群2电视剧观看| 《和社长一起去出差旅》电影介绍 | 行尸走肉十二季在线播放| 高清花便当未删减| 黑皮辣妹是我的兄弟第一季免费 | 我年轻瘦子的8| 宁安如梦电视剧免费观看| 蜡笔小新国语下载| 完美星球纪录片免费观看中文版| 地宫下的女人| 将军夫人:夫君护短全集免费| 郭德纲 九尾狐| 1995版新金银悔1-5普通话| 沧元图动漫60| 荣誉守则2在线满天星池| 高清异世界的安泰全看社畜未删减| 房奴试爱电视剧开头原声| 韩剧《仅夜晚见面》播放| 黑白配HD1080完整版版| 马达加斯加2高清| 中毒韩国电影完整版资源| 决战次时代| 我同学的妈妈双字ID全集免费| 纪实儿媳与高校干部车内约会| 岸边露伴一动不动 忏悔室 | 水润女人在线观看电视剧免费观看| 文成公主电视剧| 高清婚姻剧毒| 女大学生宿舍视频| 鸟鸟鸟动画片免费| 东京复仇者第二部| 韩国炸鸡一只卖到百元| 全职高手第二季第八集| 新金银1-5普通话免费播放| 男女一起愁愁愁电影全集在线| 《迷宫1997版》星克莱尔 | 初体验5正版| 终极快递国语| 巨茎挺进李淑芬的体内视频| 贞观长歌高清| 《爱我几何》在哪里看| 这么多年电影在线观看| 帅哥按摩师电影在线观看| 桃花马请长缨短剧免费| 插曲的痛30集免费播放最新| 电影《焦点》完整版免费观看| 李妍雨短剧| 麦乐迪女超人HD版在线观看 | 电影《功夫》国语免费观看| 一片冰心在玉壶电视剧| 蝴蝶飞飞电视剧| 《永不独眠》在线观看| 误杀电影| 原配夫妻| 魔法圣婴qvod| 最后的深爱韩国电影| xl司令第一季全集无马赛克在线观看完整版| 姐姐的闺蜜2| 安娜色情HD未删版| 法国护士长免费在线观看| 残酷的温柔 彭佳慧| 女版战狼6全集免费看| 送春 阅读答案| 仓井空的电影| 青楼名妓桃花扇童珍主演的电影 | 《隔山有眼3:起源》2025| 双探多少集| 《人妻上司》完整版| 男生女生一起相愁愁愁电视剧在线观观| 命中注定我爱你20| 越南停播中国电视剧| 盛唐风流在线电影免费播放| 零点电影完整版| 巩留县| 《妻子的浪漫旅行2026》| 林风短剧免费全集播放| 女友的妈妈韩字的id是谁| 微笑的山谷电影| 骄阳似我2025免费观看| 溢出overlove第一季全集免费观看| 爱情公寓316| XL司令真人版第一季全集| 《我爱的女人》完整版| 《卖保险套销售员》导演麦金| 恰同学少年全集| 像我这样的小可爱| 迪拜女孩满天星在线观看完整免费高清| 埃洛伊塞| 《流星花园2》在线观看| 《扫毒风暴》免费观看完整版高清| 小精灵动画片| 公之浮中2| 梁山伯与祝英台电视剧免费全集| 铃音动漫| R片| 百灵鸟叫声| 亲爱的柠檬精先生2| 爱我多深删除的三个片段分别是什么| 每日妈妈粤语| 奶大女朋友2伦理| 姚芊羽电视剧大全| 幽浮宝贝| 纵情欲海3迅雷下载| 《马向阳下乡记》电视剧| 《康体水疗》凯帕克电影免费播放| 红白蓝三部曲| 秀秀的男人电视剧| 棘手狂情电影| 玉米电影| 什么是常任理事国| 情圣囧色夫| 赵甲第电视剧免费观看全集三十集 | 孝利家民宿| 花样男子韩版| 芈月传70| 我的机器人男友短剧| 野花视频在线观看免费完整版1| 妈妈的职业5韩| 美人图秋瓷炫被搓奶第几分钟| 好姑娘8完整版在线观看全集| 一边亲一边下奶免费视频| 大漠枪神全集| 爱我几何在线观看| 林志炫翻唱| 蹉跎岁月主题歌| 日本战狼6正版免费| 限定婚约| 奔跑吧兄弟第四季第七期| 《美容院的特殊待遇》3| 椎名由奈在线视频| 魔鬼恋人| 玉蒲团3| 九周半完整版百度影音| 电影《和部长一起去出差旅》免费观| ed2k 步兵| 电影财神客栈| 美丽妻子替弟还债电视剧免费观看| 男生和女生一起愁愁愁免费观看全集高清完整版电视剧 | 撒娇女人最好命短剧全集免费观看| 艺术人生致青春| 我的女友是机器人在线| 爱我几何无减版在线看| 王的女人下载mp4| 法医秦明之读心者免费看| 夫妇隔着帘子按摩日本A片电影 | 美国A片巜禁忌3| 电视剧千山暮雪| 金装的维尔梅免费看全集| 未来与我在线观看免费版| 小小诊所| 蛮好的人生全集| 高清《最长的一天》电影在线观看| 妈妈的职业2完整版结局在线看中字| 斛珠夫人电视剧在线观看| 福尔摩斯先生体内的恶魔| 动漫《花嫁高柳家》在线观看 | 九重紫电视剧在线播放视频观看| 坏蛋联盟电影完整版免费观看| 麦乐迪与父亲| 伊沢千夏| 全职猎人108| 美国禁忌睫毛膏在线观看| 从结婚开始恋爱电视剧| 从你的指尖传出的热情| 千金奴日本电影播放完整版中文| 核污水排海个人防护指南| 中方对日下达逐客令| 《渔夫的荒野史记》电影免费观看| 白话易经| 欲体焚情女主角| 夫妻换房在线| 风雷影音电影| 沧元图完整版| 梁飞大英雄电视剧全集在线观看免费| 我爱男保姆全集下载| 荣誉守则免费完整版观看| 绿色椅子在线| 田姐辣妹电视剧全集免费观看| 上高县| 妇产医生电视剧| 极速传说2| 风从海面吹过来| 鬼吹灯之精绝古城免费观看版| 泰国电视剧美人计| 女版壮志凌云在线观看| 风雨木林| 三剑客电视剧| 黑白配美国版在线播放| 张若昀晒新剧杀青照| 单人房的天使| 韩国理伦片驯服小峓子同男主| 聚会的目的在线观看bd高清| 深入敌后3| 《日本公与媳5》筱田优| 极限挑战之皇家宝藏bt| 能听到我的心吗| 《女仆日记》法国版| 吞噬星空免费观看樱花动漫| 情难自制在线| 魔镜号中文在线观看| 痞子英雄2黎明升起| 《需要爸爸播种美国》演员名字完整 | 西游记之孙悟空三打白骨精免费| 电影需要爸爸播种子| 国家宝藏1在线| 终末的女武神樱花动漫在线观看| 求爱夜惊魂| 电视剧军刺| 娱乐圈顶流全集免费| TV脚奴| 荷尔德林的陶| 好好过日子| g点电影完整版在线观看| 《漂白》| 城中之城电视剧免费观看全集剧情| 我的漂亮朋友瘦子4演员表| 《汤摇庄的幽奈同学》| 你是我生命的一首歌| 十八岁完整版在线观看高清| 哈尔滨爆火官方坦言已准备一年| 《激战丛林》HD完整版| 乡村爱情第三部全集| 花与蛇《牙医诊所》电影完整版| 正义的重量电视剧| 我叫阿尔玛| 牙医姐妹完整版| 各卫视春晚播出时间2021| 撞邪电影| 快递员的美味2中字在线观看| 星汉灿烂电视剧结局| 虎胆龙威5高清国语| 美丽小蜜桃5大结局| 花千骨日剧第二部在线观看| 魔发奇缘动漫| 《XL司令》动漫第一季动漫| 庆余年2电视剧免费全集在线观看| 驱魔人百度影音| 销售的秘密在线观看| 恶搞之家拍脏片八季是哪一集| 旺角卡门| 朴亚珍《隐身帽子》原版| 极乐麻将| 蜜桃8| 超越情感| 大城小事电视剧免费观看全集| 凯·帕克《迷宫》| 我的私人女教师3中文字幕版| 养母电视剧| 拿猪肉去二嫂家换米的台湾电影| 湖北襄阳59天男婴窒息死亡| 斗罗大陆170| 销售的销售秘密2HD中字国 | 韩国男按摩师吸乳房在线观看| 二战译制片| 长扇舞欢聚一堂| 《灭火行动》免费观看| 寻找魔鬼| 《哪吒2》高清完整版在线观看| 电影飞驰人生2免费观看| 跑男第十二季免费播放| 女超人麦迪乐版| 重生回到刚就业时| 善良的嫂子41| 天生爱情狂国语| 维修人员的培训中字版免费| lieche| 蝙蝠 电影| 中国三年免费下载观看| 金瓶3之鸳鸯戏床| 精英律师第二部全36集| 《玉女心经3:阴阳和合》陈宝莲| 封神英雄榜2第二部| 平凡的世界全集| 明白人组合| 风情的妻子| 加勒比女海盗1免费观看高清完整版| 《野外情欲》在线观看| 日韩三级片白峰美羽在线观看| 《伊藤润二惊选集·富江》| 马永贞电视剧| 伦理电影法国护士长| 变形金刚2电影| 电视剧天堂马帮| 被凌辱的妻子在线观看| 生于70年代| 3d肉蒲团国语下载| 麦乐迪女超人在线观看完整免费高清原声满天星 | 《猎罪图鉴》第二部| 我开局就无敌了免费| 圣特罗佩姑娘们完整版在线观看| 上车走吧| 电影天堂之囚| 《高冷搜查官》苍井空| 女朋友的妈妈电影完整版| 黄飞鸿新传| 特殊保险中字5| 梦魇绝镇第二季| 康熙王朝高清全集50| 两个女人的诱惑| 水润女人刘志贤免费| 高清《流动资产》电影| 外交部:黄岩岛是中国固有领土| 险恶的绣感未册版经| 姐姐韩国电影在线观看全集| 高清《历史的天空》电视剧| 白峰电影在线播放免费观看最新版| 古惑仔8| 天堂之吻电影版在线看| 齐齐哈尔市| 美国版荷尔蒙2| 深海利剑电视剧| 电影雄兵出击免费看| 斯巴达女超人| 广场舞豆芽菜的爱| 指环王在线观看| 京香| 误入军统的女人全集在线观看| 外国人那东西太大进不去| 爱上我的黑道冤家| 当着丈夫的面被耍在线播放| 胡桃大战史莱姆在线观看 | 雾蓝色的雨后晴天未删减| 调音师电影在线观看免费版| 锵锵锵锵锵免费完整观看| 无人观看高清电视剧免费| 命运交响曲剧情| 公主嫁到国语版全集| 白峰电影国语免费全集| 极恶老大第一季| 搞笑一家人2国语| 21世纪爱情指南完整版全集| 别墅互换游戏2免费观看| 第一次爱的人免费观看韩剧| 激战丛林| 肉蒲团极乐宝鉴| 电影《阿诺拉》完整版| 古代种田全集免费| 日剧和部长一起去出差 | 迪迦奥特曼1| 动感之星小玲38集全集免| 一不小心爱上你歌曲| 看得见的女孩动漫全集观看| 《私人航空》在线看| 夫妻相隔5小时先后坠楼身亡| 一家乱战2免费高清在线观看| 叶子户外| 美丽小密桃3美丽人生娃娃脸| 粉红女郎百度影音| 只有神知道的世界| 渔夫荒野台湾版免费观看| 学校怪谈| 小爸爸全集在线观看| 再向虎山行连续剧83版免费观看 | 免费观看90分钟高清电视| 《快递员的待遇》在线| 需要爸爸的种子美国子弹电影在线观看| 刷子李课件| 这就是我的主人| 人猿泰山H版未删减 | 《双女任务》完整版电影| 女上司的堕落:复仇让她彻底沦陷电影 | 铁血少年| 军刺电视剧全集优酷| 电影《欢欣》在线观看| 做aj的一频视剧| 裸婚时代第二部| 成吉思汗的电视剧| 《乳房按摩》在线观看| 法国空姐2024| 择君记电视剧在线观看完整版免费| 报歉沈先生孩子不是你的短剧大结局 | 美国粉红大白菜| 西游记 86版续集| 人之怒在线观看完整免费| 春江花月夜简谱| 美味快递员特殊待遇2完整版| 媳妇和少奶奶电视剧在线观看| 魔乳秘剑帖全集| 不雅空乘4| 姐妹们你们喜欢快抽还是慢送?| 婚姻保卫战6| 菲梦少女第二季免费观看完整版| 销冠的秘密2| 环太平洋百度影音高清| 仁心俱乐部电视剧全集免费观看| 我赵日天不服| 影音先锋国产资源| 百变校巴全集免费观看| 唐探1900 电影| 饥饿的瘦6| 何炅王嘉尔曾预言白敬亭宋轶| 结弦电影在线观看免费完整版| 黛玉新传| 三年国语完整版在线看| 月满西楼舞蹈| 《修女的忏悔室》动漫免费看| 火山要努力鸭| 《xl司令》在线观看完整版动漫| 高清《奋斗吧人生-演员篇》| 大湾区晚会2024节目单| 最后之舞| 魔力宝贝监狱完整版| 金手指在线观看| 绝密飞行2| 男网红在泰国杀害男伴分尸被捕| 俘虏之村| 名侦探柯南剧场版12| 无声蛙鸣免费观看全集完整版| 嘉善县| 爱丫爱丫免费观看电视剧高清在线| 喜宝电影在线观看完整版| 电视剧怪侠欧阳德| 人猿泰山HR版1995| 《初恋时间》动漫5-6集| 冲上云霄2大结局是什么| 燕归来电视剧| 魔镜号巴士街头中文字幕在线| 泰迦奥特曼剧场版| 电影网站在线| 莫小棋三级| 高压监狱法国在线观看完整免费高清原声奔跑吧 | 香格里拉开拓异境| 大考电视剧免费观看完整版| 市委书记晚上不打招呼调研被拦| 熟睡中被义子侵犯日本在线观看| 红楼春上春下载| 张帝问答演唱会| 吴健版农民伯伯2国语版百度云资源| 韩剧《美妙人生》| 暗夜免费观看在线完整版| 儿媳妇的味道很好闻电影| 蔚蓝50米| 仁显王后的男人预告片| 过年回家| 老电影武当| 鸭王2免费观看完整版普通话| 爱我几何未删除| 玩火的女孩| 林州市| 万物生长| 电视连续剧爱| 苏州市| 急诊护士完整版在线播放| 搞笑一家人国语版1| 斗破苍穹年番第56集免费观看| 《极乐宝鉴》在线观看| xl司令在线观看完整版动漫免费观看 | 倔强的驱魔师无删减在线观看| 奇妙萌可第一季| 高清《四个愿望》| 墨缘太极纯音乐加长版| 女英雄堕落之水星陨落2在线观 | 最激烈的床震大叫不停|