精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

圖文詳解 Gcc -g 調試信息

系統 Linux
DWARF(全稱:Debugging With Attributed Record Formats)是一種廣泛使用的調試數據格式標準,旨在為編譯器、調試器和其他工具提供一種標準化的機制,用于描述程序的源代碼結構、變量、類型、函數調用棧等信息。

大家好,這里是物聯網心球。

作為一個Linux開發者,我們經常會通過gcc -g命令來編譯可執行程序,-g選項能夠生成調試信息,開發者根據調試信息能夠快速定位并排查程序問題。

那么,調試信息到底是什么呢?本文我們一探究竟。

1.調試信息的重要性

gdb調試是一種非常重要的調試手段,如果gdb調試的程序沒有調試信息,那么我們將無法從gdb調試器中獲取到有價值的信息,調試過程也會異常困難。下面我們通過幾個場景來驗證一下。

場景1:查看變量

通過print命令打印變量的值時,帶調試信息輸出示例如下:

(gdb) print a
$1 = 100

未帶調試信息輸出示例如下:

(gdb) print a
'a' has unknown type; cast it to its declared type

gdb調試未帶調試信息的可執行程序時無法識別變量。

場景2:打印數據類型

通過ptype命令打印數據類型,帶調試信息輸出示例如下:

(gdb) ptype it
type = struct item {
    char num;
    int data;
}

未帶調試信息輸出示例如下:

(gdb) ptype it
No symbol table is loaded. Use the "file" command.

gdb調試未帶調試信息的可執行程序時無法識別數據類型。

場景3:指定源文件行號設置斷點

通過break命令在源文件指定行號設置斷點,帶調試信息輸出示例如下:

(gdb) break main.c:12
Breakpoint 2 at 0x55555555515c: file main.c, line 14.

未帶調試信息輸出示例如下:

(gdb) break main.c:12
No symbol table is loaded. Use the "file" command.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (main.c:12) pending.

gdb調試未帶調試信息的可執行程序時,無法在指定源文件行號設置斷點。

場景4:打印堆棧

通過bt命令打印堆棧信息,帶調試信息輸出示例如下:

(gdb) bt
#0 main (argc=1, argv=0x7fffffffe468) at main.c:14

未帶調試信息輸出示例如下:

(gdb) bt
#0 0x0000555555555151 in main ()

gdb調試未帶調試信息的可執行程序時,打印堆棧信息無行號和其他調試信息。

通過以上幾個場景的對比,我們能夠直觀的感受到,帶調試信息的可執行文件能夠提供更加豐富和關鍵的調試信息,協助開發者高效地解決問題。

2.認識調試信息   

調試信息其實并不神秘,它是嵌入在ELF文件中的節,這些節的形式為.debug_*(*代表不同的節)。

我們通過圖1來深入學習調試信息。

圖1    兩種文件對比圖1 兩種文件對比

圖1左邊為無調試信息可執行文件,右邊為帶調試信息可執行文件。無調試信息可執行文件中的內容比較少,文件占用內存空間也比較小。通過對比,我們發現帶調試信息可執行文件多了一些節:.debug_aranges節、.debug_info節、.debug_abbrev節、.debug_line節、.debug_str節、.debug_line_str節。這些多出來的節就是我們今天的主角:調試信息。這些節并不是隨意生成的,需要遵循一定的規則,這個規則就是DWARF。

3.DWARF介紹

DWARF(全稱:Debugging With Attributed Record Formats)是一種廣泛使用的調試數據格式標準,旨在為編譯器、調試器和其他工具提供一種標準化的機制,用于描述程序的源代碼結構、變量、類型、函數調用棧等信息。

DWARF共經歷了5個版本的迭代: 

  • DWARF1:1992年發布,為Unix System V的sdb調試器設計,支持C 語言,現已很少使用。
  • DWARF2:1993年發布,修正v1問題,增加C++支持,引入數據壓縮。
  • DWARF3:2005年發布,增加對多種語言支持,優化數據壓縮。
  • DWARF4:2010年發布,進一步改善數據壓縮,支持編譯器優化后代碼描述。
  • DWARF5:2017年發布,支持調試信息分離,改進宏和源文件描述。

DWARF的規則很復雜,筆者不建議大家直接研究DWARF標準。我們可以把DWARF標準當做一個手冊,當我們學習的過程中遇到問題再去查閱它。相較于直接學習DWARF標準,更為有效的學習方法是選搞懂各種調試節(.debug_*)的原理和作用。

以DWARF5為例,常見的調試節見表1。

表1    DWARF5常見調試節表1 DWARF5常見調試節

通過命令:readelf -w 可執行文件,可顯示所有的調試節。由于該命令展示的內容比較多,限于篇幅,這里不展示輸出示例。

3.1 .debug_aranges節

.debug_aranges節用于提供內存地址與編譯單元之間的映射關系,編譯單元后續會詳細介紹。通過.debug_aranges節,調試器可以快速將程序計數器(PC)的值映射到.debug_info節中的編譯單元,從而獲取相關的調試信息。

通過命令:readelf -wr 可執行文件,可查看.debug_aranges信息,輸出示例如下:

圖片圖片

.debug_aranges節分為兩個部分:頭部信息和地址范圍表。

頭部信息相關字段如下:

  • Length:表示該節的總長度(不包括這個長度字段本身)。
  • Version:表示 DWARF 格式的版本號,通常為2或4。
  • Offset into .debug_info:表示.debug_info節中的偏移量,用于定位編譯單元的起始位置。
  • Pointer Size:表示目標系統中指針的大小,以字節為單位。
  • Segment Size:表示目標系統中段選擇符的大小,以字節為單位,通常為 0。
    地址范圍表由一系列的地址范圍對組成,每個地址范圍對包含兩個字段:
  • Address:表示地址范圍的起始地址。
  • Length:表示地址范圍的長度。

gcc編譯可執行程序時,會將源文件(如.c/.cpp文件)編譯成編譯單元并將編譯單元覆蓋的地址范圍記錄在.debug_aranges節。

gdb需要確定某個指令地址(如:0x7fff1234)對應的源代碼位置時:    首先,通過0x7fff1234地址查詢.debug_aranges節地址范圍表,找到對應的編譯單元在.debug_info中的偏移;然后,通過偏移定位到.debug_info中的編譯單元;最后,從編譯單元開始解析DIE樹,獲取到源碼相關的信息。

3.2 .debug_info節

.debug_info節由調試信息條目(Debugging Information Entry,DIE)構成。DIE是.debug_info節中的一個基本單元,它通過標簽(Tag)和屬性(Attributes)來描述程序中的一個語義實體(如:函數名、參數、局部變量、代碼行號范圍)。每個DIE可以有多個子條目,形成一個樹狀結構,用于描述更復雜的語義關系。

通過命令:readelf -wi 可執行文件,可查看.debug_info信息,輸出示例如下:

圖片圖片

每個 DIE 包含以下幾個部分:

(1)Tag(標簽)

Tag 是一個單字節的值,用于標識調試信息條目(DIE)的類型。常見的Tag如下:

  • DW_TAG_compile_unit:表示一個編譯單元,通常是源文件。
  • DW_TAG_subprogram:表示一個函數或方法。
  • DW_TAG_variable:表示一個變量,可以是全局變量或局部變量。
  • DW_TAG_formal_parameter:表示函數的參數。
  • DW_TAG_typedef:表示一個類型定義。
  • DW_TAG_structure_type:表示一個結構體類型。  
  • DW_TAG_union_type:表示一個聯合體類型。   
  • DW_TAG_enumeration_type:表示一個枚舉類型。  
  • DW_TAG_array_type:表示一個數組類型。
  • DW_TAG_base_type:表示一個基本類型,如int 、float等。
(2)Attributes(屬性)

Attributes 是一個屬性列表,每個屬性由一個屬性名稱和一個屬性值組成。常見的Attributes如下:

  • DW_AT_name:表示實體的名稱,如變量名、函數名、文件名等。  
  • DW_AT_type:表示實體的類型,通常是一個偏移量,指向.debug_info節中的另一個 DIE。
  • DW_AT_location:表示變量的存儲位置,可以是寄存器或內存地址。
  • DW_AT_low_pc和DW_AT_high_pc:表示函數的代碼范圍,分別表示函數的起始地址和結束地址。
  • DW_AT_decl_file、DW_AT_decl_line 和DW_AT_decl_column:表示實體在源文件中的聲明位置。
(3)Children(子條目)

Children 是一個 DIE 的子條目列表,每個子條目也是一個 DIE。

3.3 .debug_abbrev節

.debug_abbrev節用于定義.debug_info節中調試信息條目(DIE)的結構和屬性的縮寫表。通過使用縮寫表,.debug_info節可以更高效地存儲和解析調試信息,減少重復數據的存儲。

通過命令:readelf -wa 可執行文件,可查看.debug_abbrev節信息,輸出示例如下:

圖片圖片

.debug_abbrev節中的DIE和.debug_info節中的DIE互為抽象和實現的關系。一個比較形象的比喻,.debug_abbrev節中的DIE如同C++中的類,.debug_info節中的DIE如同C++中的對象。類是數據類型,對象為類的具體實現。

3.4 .debug_line節

.debug_line節建立了機器指令地址與源代碼行號之間的映射關系,是實現源碼級調試的核心基礎。

.debug_line節的核心功能是:

  • 提供源代碼行號與機器指令地址的精確映射。
  • 使調試器能夠將程序計數器(PC)值轉換為源代碼位置。
  • 支持設置斷點、單步執行和堆棧跟蹤等基本調試功能。

通過命令:readelf -wl 可執行文件,可查看.debug_line節信息,輸出示例如下:

圖片圖片

注意,.debug_line節的規則比較復雜,我們可以跳過規則學習,先了解.debug_line的作用。.debug_line節最終將會呈現一個指令地址和源文件行號的映射表,見表2。

表2    .debug_line指令地址和行號映射表表2 .debug_line指令地址和行號映射表

3.5 .debug_str節

.debug_str節是一個字符串池,它存儲了調試過程中所需的所有字符串數據,包括:函數名、變量名、類型名、編譯器信息、其他文本描述。

通過命令:readelf -ws 可執行文件,可查看.debug_str節信息,輸出示例如下:

圖片圖片

從輸出示例可以看到.debug_str包含一些我們比較常見的字符串,如果我們想使用這些字符串,只需要從調試文件指定的位置讀取這些字符串即可。

3.6 .debug_line_str節

.debug_line_str節同樣是一個字符串池。這些字符串通常包括文件名、目錄路徑等,它們被.debug_line節中的行號程序引用。

輸出示例如下:

圖片圖片

.debug_line_str和.debug_str的使用方法類似。

4.調試信息分離

調試信息分離是指將調試信息從可執行文件中分離出來,存儲在單獨的文件中。將調試信息存儲在單獨的文件有幾個優點:

  • 減小可執行文件大?。和ㄟ^將調試信息分離到單獨的文件中,可執行文件的大小可以顯著減小。
  • 提高安全性:分離的調試信息文件可以存儲在安全的環境中,從而防止調試信息泄露。
  • 提高性能:較小的可執行文件可以更快地加載和運行,從而提高應用程序的性能。

4.1 實現原理

為了讓大家更好的理解調試信息分離的過程,我們通過一張圖描述該過程,如圖2所示。

圖2    調試信息分離

調試信息分離具體步驟如下:

  • 步驟1:編譯帶調試信息的可執行程序。

gcc -g編譯帶調試信息的可執行文件,以test程序為例,命令如下:

gcc -g -o test test.c
  • 步驟2:生成單獨的調試信息文件。

使用objcopy命令的--only-keep-debug選項,將調試信息提取到一個單獨的文件中,命令如下:

objcopy --only-keep-debug test test.debug

test.debug文件為單獨調試文件。

  • 步驟3:去除可執行文件中的調試信息。

使用objcopy命令的--strip-debug選項,移除可執行文件調試信息,

objcopy --strip-debug test

執行完該命令,可執行文件中的.debug_*節將全部被刪除。    

  • 步驟4:添加調試信息文件鏈接。

使用objcopy命令的--add-gnu-debuglink選項,將調試信息文件的路徑添加到可執行文件中。gdb調試可執行文件時,就能夠自動查找到調試信息文件。

objcopy --add-gnu-debuglink=test.debug test

執行完該命令,可執行文件中將添加一個.gnu_debuglink節,其中包含調試信息文件的路徑。通過以下命令可以查看.gnu_debuglink節中的內容:

readelf -p .gnu_debuglink test

輸出示例如下:

圖片圖片

4.2 gdb調試單獨調試文件

當我們按照上述步驟生成了單獨的調試文件后,我們既能夠獲得一個輕量級的可執行程序,又能夠有一個完整的調試文件。當程序在實際環境運行出現問題時,我們能夠通過單獨的調試文件排查問題。

gdb調試單獨調試文件分為:手動添加調試文件和自動添加調試文件。

手動添加通過gdb add-symbol-file命令完成,輸出示例如下:

(gdb) add-symbol-file test.debug
add symbol table from file "test.debug"
(y or n) y
Reading symbols from test.debug...

自動添加的方式需要在可執行程序中添加調試信息文件鏈接(參考調試信息分離步驟4)。注意,可執行文件和調試文件需要在同一個目錄。輸出示例如下:

圖片圖片


責任編輯:武曉燕 來源: 物聯網心球
相關推薦

2011-07-18 13:11:53

2010-06-23 10:03:01

2010-06-04 17:48:20

Linux編程工具

2024-11-28 12:38:39

gcc開源編譯器

2009-12-23 18:54:53

Fedora Core

2009-12-11 14:05:32

Linux安裝GCC

2011-07-19 16:34:01

Xcode 證書

2024-07-26 10:35:00

2024-09-04 09:43:36

2021-04-25 06:12:19

Java內存布局JVM

2025-08-27 06:25:00

MSTP網絡端口

2018-02-07 09:25:50

Linux命令touch

2015-10-26 15:48:51

安裝Ubuntu 15.1Linux

2009-12-10 19:02:30

2011-11-21 15:12:54

Java斷點Eclipse

2011-07-28 14:31:55

Xcode 調試 異常

2017-07-13 13:13:49

AndroidAPK反編譯

2009-12-23 17:20:55

Fedora GCC

2011-02-13 11:37:45

Android 3.0

2024-05-31 13:34:57

點贊
收藏

51CTO技術棧公眾號

少妇性饥渴无码a区免费| 99热最新在线| 一级片黄色录像| 伊人亚洲精品| 精品国产乱码久久久久久天美| 国产精品人成电影在线观看| 激情五月激情综合| 2020最新国产精品| 色婷婷久久一区二区三区麻豆| 成人在线观看91| 国产农村妇女aaaaa视频| 日韩国产欧美| 亚洲电影第1页| 性生活免费在线观看| 黄网av在线| 国产喂奶挤奶一区二区三区| 91福利视频导航| 蜜臀精品一区二区三区| 欧美va天堂在线| 亚洲人成电影在线观看天堂色| 无码 制服 丝袜 国产 另类| 自拍偷拍第八页| 黑丝一区二区三区| 色偷偷偷亚洲综合网另类| jizz18女人| 日本蜜桃在线观看视频| 亚洲欧美色图小说| 日韩精品一区二区三区四区五区| 中国a一片一级一片| 亚洲激情女人| 欧美精品一区二区三区国产精品| 午夜免费福利影院| 国产午夜亚洲精品一级在线| 欧美性三三影院| 337p粉嫩大胆噜噜噜鲁| 超碰在线影院| 91在线观看污| 国产中文一区二区| 国产精品露脸视频| 久久国产毛片| 国产69久久精品成人看| 久久精品国产亚洲av麻豆色欲| 亚洲区小说区图片区qvod| 精品国一区二区三区| 国产在线青青草| av最新在线| 亚洲高清不卡在线| 999一区二区三区| 伊人222成人综合网| 中文字幕欧美一| 一区二区精品在线| 色哟哟免费在线观看| 国产精品美女久久久久高潮| 婷婷久久青草热一区二区 | 国内自拍第二页| 国产一区二区三区影视| 色婷婷综合久久久久中文一区二区| 亚洲国产一区二区在线| 福利在线观看| 国产精品久久久久影视| 一本一本a久久| 熟妇高潮一区二区高潮| 成人国产视频在线观看| 国产一区二区三区四区五区加勒比| 亚洲综合网av| 国产日韩一区| 国产91免费观看| 日本成人一级片| 一区二区毛片| 日韩av123| 在线观看国产成人| 国内精品在线播放| 国产精品一区二区在线观看| 五月色婷婷综合| 久久久噜噜噜久久人人看| 日韩影视精品| 成年视频在线观看| 亚洲在线观看免费视频| 欧美久久久久久久久久久久久| 日本在线观看| 一区二区三区在线观看动漫| 久草免费福利在线| 国产剧情在线| 亚洲综合激情网| 日本免费黄视频| 日韩欧美精品一区二区综合视频| 色综合久久久久久久久久久| 亚洲精品视频导航| 蜜桃精品一区二区三区| 亚洲国产精品yw在线观看| 欧美做受高潮6| 国产精品密蕾丝视频下载| 亚洲国产精品推荐| 亚洲第一综合网| 国产探花在线精品| 欧美tickling网站挠脚心| 久久久久久三级| 久久99精品久久久野外观看| 日韩成人在线免费观看| 欧美自拍偷拍网| 激情综合在线| 国产精品自在线| 在线免费观看一区二区| 蜜桃视频一区二区| 国产精品久久久久久久久久三级| 亚洲 日本 欧美 中文幕| 国产河南妇女毛片精品久久久| 亚洲自拍偷拍福利| 九色网友自拍视频手机在线| 一区二区三区四区国产精品| 日本黄网站免费| 美女精品久久| 精品国产凹凸成av人导航| 国产ts在线观看| 成人午夜av| 26uuu日韩精品一区二区| 伊人久久一区二区| 97久久精品人人做人人爽50路| 久久国产精品一区二区三区四区| 青青色在线视频| 国产欧美日韩亚州综合| 亚洲一区二区三区加勒比 | 亚洲欧洲中文天堂| 久久免费视频精品| 国产综合色视频| 日韩视频专区| av片在线观看永久免费| 欧洲精品在线观看| 800av在线播放| 综合久久综合| 国产欧美日韩专区发布| 久久精品国产亚洲a∨麻豆| 亚洲国产综合在线| 久久精品午夜福利| 亚洲精品自拍| 色噜噜狠狠狠综合曰曰曰| 欧美特黄aaaaaa| 91丝袜高跟美女视频| 国产高清www| 亚洲乱码一区| 欧美国产日本高清在线 | 欧美成人精品激情在线视频| 免费在线观看日韩欧美| 欧美一区二区三区四区五区六区| 2017亚洲天堂1024| 亚洲综合男人的天堂| 黄色片子免费看| 亚洲天堂免费| 国产成人一区二区三区小说| 色久视频在线播放| 欧美性色xo影院| 国产ts在线播放| 三级影片在线观看欧美日韩一区二区| 92看片淫黄大片欧美看国产片| 午夜在线视频观看| 欧美日韩亚洲激情| 成人免费网站黄| 视频一区二区欧美| 亚洲国产精品一区二区第四页av| 金瓶狂野欧美性猛交xxxx| 91精品国产综合久久久久| 欧美一级特黄高清视频| 韩日av一区二区| 国产精品手机在线| 色资源二区在线视频| 亚洲天堂av高清| 自拍偷拍福利视频| 亚洲色图丝袜美腿| 超碰caoprom| 久久婷婷久久| 亚洲第一页在线视频| 天堂av一区| 色吧影院999| 99久久免费国产精精品| 一级精品视频在线观看宜春院| 久久婷婷综合色| 羞羞色午夜精品一区二区三区| 2019中文字幕在线免费观看| 国产在线电影| 制服视频三区第一页精品| 亚洲午夜精品久久久久久高潮| 一本不卡影院| 日韩性感在线| 2020最新国产精品| 国产成人精品国内自产拍免费看| 人妻少妇精品无码专区久久| 色综合一区二区三区| 日本精品久久久久中文| 粉嫩蜜臀av国产精品网站| 日本毛片在线免费观看| 色综合咪咪久久网| 国产一区视频观看| 欧美97人人模人人爽人人喊视频| 亚洲天堂男人的天堂| 国产美女明星三级做爰| 亚洲v日本v欧美v久久精品| 影音先锋资源av| 99精品视频免费观看| 一级特黄录像免费播放全99| 国产在线播放精品| 国产精品视频区| 激情黄产视频在线免费观看| 亚洲国产精品一区二区久| 韩国av免费观看| 久久一留热品黄| 久久久久无码精品| 日本亚洲免费观看| 国产视频九色蝌蚪| 欧美在线免费| 亚洲午夜久久久影院伊人| 婷婷五月色综合香五月| 99re视频在线播放| 97精品资源在线观看| 国产xxx69麻豆国语对白| 精精国产xxxx视频在线中文版| 亚洲精品www久久久| 五月婷婷色丁香| 一区二区成人在线视频 | 99精品视频一区二区三区| 久久久久久久久久一区| 久久激情婷婷| 18岁网站在线观看| 黄色成人在线网址| 视色,视色影院,视色影库,视色网| 懂色av一区二区| 日本成熟性欧美| 91美女精品| 欧美激情久久久久| 午夜激情在线| 不卡av在线播放| 久草免费在线观看| 日韩在线视频免费观看| 日本中文字幕在线播放| 欧美va亚洲va在线观看蝴蝶网| 无码人妻av免费一区二区三区| 亚洲天天做日日做天天谢日日欢| 国产chinese中国hdxxxx| 国产精一品亚洲二区在线视频| 欧美日韩在线一| 99热国内精品| 久久av秘一区二区三区| 爽成人777777婷婷| 在线不卡日本| 欧美丰满老妇| 久久免费看毛片| 久久精品久久久| 中文字幕av导航| 亚洲激情久久| av动漫在线播放| 伊人久久婷婷| 波多野结衣乳巨码无在线| 模特精品在线| 国产真实乱子伦| 日韩一区精品字幕| 波多野结衣xxxx| 寂寞少妇一区二区三区| 中国丰满人妻videoshd| 久久精品综合| 亚洲久久中文字幕| 国内精品免费**视频| www.欧美日本| 久久精品av麻豆的观看方式| 99九九精品视频| 成人三级在线视频| 99久久久久久久久久| 欧美国产一区在线| 大又大又粗又硬又爽少妇毛片| 国产乱码精品一区二区三区av | 成人免费视频网站入口::| 一区二区三区资源| 日本免费一二三区| 色婷婷av一区二区三区大白胸| 国产在线精品观看| 欧美视频在线免费| 亚洲一级av毛片| 精品国产一区二区在线观看| 99精品在线视频观看| 亚洲国产精品va在线| 99riav在线| 久久久久亚洲精品成人网小说| 影音先锋男人在线资源| 欧美一区二区三区免费观看 | 日韩欧美美女在线观看| 日韩在线三级| 欧美日韩日本国产亚洲在线 | 91成人在线看| 久操精品在线| 欧美中文字幕在线观看视频| 奶水喷射视频一区| 九九热免费在线观看| 久久99精品国产.久久久久久| 亚洲国产精品三区| 日韩电影一区二区三区四区| 国产欧美日韩小视频| 欧美天天视频| 九九热在线免费| 成人av网在线| 亚洲色图27p| 色综合欧美在线视频区| 亚洲美女性生活| 久久久av电影| 成人看片在线观看| 国产日韩欧美综合精品| 天天综合精品| 玩弄japan白嫩少妇hd| 青青草成人在线观看| 亚洲精品久久久久久宅男| youjizz国产精品| 欧美三级在线免费观看| 欧美色视频在线观看| 亚洲av成人无码网天堂| 国产亚洲精品久久久| 91九色国产在线播放| 亚洲va码欧洲m码| 91麻豆国产自产在线观看亚洲| 看一级黄色录像| 亚洲精品1234| 手机在线播放av| 亚洲三级视频在线观看| 精品乱码一区内射人妻无码| 亚洲精品成a人在线观看| av片在线观看网站| 亚洲一区二区中文| 9999国产精品| 污片在线免费看| 国产农村妇女毛片精品久久麻豆| 色偷偷www8888| 欧美日韩一本到| www日韩tube| 国产精品久久久久秋霞鲁丝| 亚洲激情播播| 久久精品免费一区二区| 99国产欧美久久久精品| 国产午夜视频在线播放| 精品乱码亚洲一区二区不卡| 26uuu亚洲电影在线观看| 91网站在线免费观看| 校花撩起jk露出白色内裤国产精品| 亚洲精品高清视频| 今天的高清视频免费播放成人| www.xxx亚洲| 久久精品欧美一区二区三区不卡| 我家有个日本女人| 日韩一区二区三区高清免费看看| 欧美日韩国产中文字幕在线| 日本sm极度另类视频| 免费一级欧美在线大片| 糖心vlog在线免费观看| 国产精品99久久久久久似苏梦涵 | 日韩av123| 国产精品手机在线播放| 久久久久久香蕉| 国产人成亚洲第一网站在线播放| 九九免费精品视频| 欧美专区日韩专区| 神马午夜在线观看| 91成人性视频| 精品72久久久久中文字幕| 午夜免费高清视频| 亚洲天堂成人在线观看| 成人黄色免费视频| 538国产精品一区二区免费视频| www.成人| 日韩精品一区二区免费| 91蜜桃免费观看视频| 波多野结衣激情视频| 日日狠狠久久偷偷四色综合免费| 中文字幕 在线观看| 成人精品一二区| av不卡在线看| 能直接看的av| 日韩一二三四区| 小草在线视频免费播放| 视频一区二区综合| 国产高清久久久| 国产99久久久| 日韩精品免费在线观看| 亚洲电影有码| 粉嫩av一区二区三区天美传媒| 久久99精品久久久久久动态图| 欧美巨胸大乳hitomi| 欧美不卡一区二区| 欧美xxx视频| 毛片在线视频观看| 国产精品综合网| 波多野结衣视频网站| 久久色精品视频| 小说区图片区色综合区| 三区视频在线观看| 日韩欧美中文在线| 欧美xxx.com| 91亚洲精品久久久| 久久久精品五月天| 欧美日韩免费做爰视频| 国产香蕉精品视频一区二区三区| 欧美成人免费电影| 色之综合天天综合色天天棕色| 蜜臀久久久99精品久久久久久| 国产成人在线网址| 亚洲成年人在线|