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

用gdb分析core文件及常見gdb命令操作示例

開發 開發工具
本文以一個實際的程序為例,介紹了用gdb分析core文件的方法和步驟,同時演示了常見gdb命令的操作方法。

1.概述

在實際的軟件開發項目中,程序出現問題是在所難免的。遙想本人參加工作之后***遇到程序的情景,至今還歷歷在目。之前的經驗告訴我,我們越是驚慌失措,問題就越是解決不了。我們要先讓自己平靜下來,然后再尋找解決程序問題的辦法。

軟件開發

Linux下做開發的朋友,想必都與core文件打過交道。當看到自己的程序運行之后出現core時,很多人都慌亂了,仿佛天快要塌下來一樣。其實,我們大可不必如此,只要我們掌握了用gdb調試core文件的辦法,依然可以很快定位程序問題,一舉將bug消滅掉。有關Linux core文件的更多介紹,請閱讀此文:http://www.cnblogs.com/dongzhiquan/archive/2012/01/20/2328355.html

本文以一個實際的程序為例,介紹了用gdb分析core文件的方法和步驟,同時演示了常見gdb命令的操作方法。如果大家想對相關gdb命令有更多的了解,請自行百度之。

2.示例程序

  1. /********************************************************************** 
  2. * 版權所有 (C)2015, Zhou Zhaoxiong。 
  3. * 文件名稱:GdbDebug.c 
  4. * 文件標識:無 
  5. * 內容摘要:Gdb命令演示程序 
  6. * 其它說明:無 
  7. * 當前版本:V1.0 
  8. * 作    者:Zhou Zhaoxiong 
  9. * 完成日期:20151008 
  10. **********************************************************************/ 
  11. #include <stdio.h> 
  12. #include <stdlib.h> 
  13. #include <string.h> 
  14.  
  15. // 數據類型重定義 
  16. typedef unsigned char       UINT8; 
  17. typedef signed   int        INT32; 
  18. typedef unsigned int        UINT32; 
  19.  
  20.  
  21. // 函數聲明 
  22. void Sleep(UINT32 iCountMs); 
  23. void PrintInfo(void); 
  24. INT32 main(); 
  25.  
  26.  
  27. /********************************************************************** 
  28. * 功能描述:主函數 
  29. * 輸入參數:無 
  30. * 輸出參數:無 
  31. * 返 回 值:無 
  32. * 其它說明:無 
  33. * 修改日期        版本號     修改人            修改內容 
  34. * ------------------------------------------------------------------- 
  35. * 20151008       V1.0     Zhou Zhaoxiong      創建 
  36. ***********************************************************************/ 
  37. INT32 main() 
  38.     PrintInfo();   // 在屏幕上輸出消息 
  39.  
  40.     return 0; 
  41.  
  42.  
  43. /********************************************************************** 
  44.  * 功能描述: 在屏幕上輸出消息 
  45.  * 輸入參數: 無 
  46.  * 輸出參數: 無 
  47.  * 返 回 值: 無 
  48.  * 其它說明: 無 
  49.  * 修改日期            版本號            修改人           修改內容 
  50.  * ---------------------------------------------------------------------- 
  51.  * 20151008            V1.0        Zhou Zhaoxiong        創建 
  52.  ************************************************************************/ 
  53. void PrintInfo(void) 
  54.     UINT32 iLoopFlag = 0
  55.     UINT32 iSum      = 0
  56.     UINT32 iLen      = 0
  57.     UINT8 *pCtrStr   = NULL
  58.  
  59.     iLen = strlen(pCtrStr); 
  60.  
  61.     for (iLoopFlag = 0; iLoopFlag < iLen; iLoopFlag ++)      // 打印消息iLen次 
  62.     { 
  63.         printf("PrintInfo: hello, world!\n"); 
  64.  
  65.         iSumiSum = iSum + iLoopFlag; 
  66.  
  67.         Sleep(10 * 1000);   // 每10s打印一次 
  68.     } 
  69.  
  70.     return; 
  71.  
  72.  
  73. /********************************************************************** 
  74. * 功能描述: 程序休眠 
  75. * 輸入參數: iCountMs-休眠時間(單位:ms) 
  76. * 輸出參數: 無 
  77. * 返 回 值: 無 
  78. * 其它說明: 無 
  79. * 修改日期          版本號       修改人              修改內容 
  80. * ------------------------------------------------------------------ 
  81. * 20151008         V1.0     Zhou Zhaoxiong          創建 
  82. ********************************************************************/ 
  83. void Sleep(UINT32 iCountMs) 
  84.     struct timeval t_timeout = {0}; 
  85.  
  86.     if (iCountMs < 1000
  87.     { 
  88.         t_timeout.tv_sec = 0
  89.         t_timeout.tv_usec = iCountMs * 1000; 
  90.     } 
  91.     else 
  92.     { 
  93.         t_timeout.tv_sec = iCountMs / 1000; 
  94.         t_timeout.tv_usec = (iCountMs % 1000) * 1000; 
  95.     } 
  96.     select(0, NULL, NULL, NULL, &t_timeout);   // 調用select函數阻塞程序 

3.用gdb分析core文件

在Linux上用“gcc -g -o GdbDebug GdbDebug.c”命令對程序進行編譯之后,運行“GdbDebug”命令,發現在當前目錄下出現了core文件。利用gdb命令對core文件進行分析的過程如下所示:

  1. ~/zhouzhaoxiong/zzx/GdbDebug> gdb GdbDebug core     -- 啟動gdb對core文件的分析 
  2. GNU gdb (GDB) SUSE (7.3-0.6.1) 
  3. Copyright (C) 2011 Free Software Foundation, Inc. 
  4. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
  5. This is free software: you are free to change and redistribute it. 
  6. There is NO WARRANTY, to the extent permitted by law.  Type "show copying" 
  7. and "show warranty" for details. 
  8. This GDB was configured as "x86_64-suse-linux". 
  9. For bug reporting instructions, please see: 
  10. <http://www.gnu.org/software/gdb/bugs/>... 
  11. Reading symbols from /home/zhou/zhouzhaoxiong/zzx/GdbDebug/GdbDebug...done. 
  12. Core was generated by `GdbDebug'. 
  13. Program terminated with signal 11, Segmentation fault. 
  14. #0  0x00007f4a736f9812 in __strlen_sse2 () from /lib64/libc.so.6 
  15. (gdb) where          -- 查看程序出問題的地方 
  16. #0  0x00007f4a736f9812 in __strlen_sse2 () from /lib64/libc.so.6 
  17. #1  0x000000000040061a in PrintInfo () at GdbDebug.c:64   -- 可以看到,在GdbDebug.c文件的第64行出的問題 
  18. #2  0x00000000004005e5 in main () at GdbDebug.c:41 
  19. (gdb) b 41           -- 在GdbDebug.c文件第41行設立斷點 
  20. Breakpoint 1 at 0x4005e0: file GdbDebug.c, line 41. 
  21. (gdb) b 64           -- 在GdbDebug.c文件第64行設立斷點 
  22. Breakpoint 2 at 0x400611: file GdbDebug.c, line 64. 
  23. (gdb) info b         -- 顯示斷點信息 
  24. Num     Type           Disp Enb Address            What 
  25. 1       breakpoint     keep y   0x00000000004005e0 in main at GdbDebug.c:41 
  26. 2       breakpoint     keep y   0x0000000000400611 in PrintInfo at GdbDebug.c:64 
  27. (gdb) r              -- 運行GdbDebug 
  28. Starting program: /home/zhou/zhouzhaoxiong/zzx/GdbDebug/GdbDebug  
  29.  
  30. Breakpoint 1, main () at GdbDebug.c:41 
  31. 41          PrintInfo();   // 在屏幕上輸出消息 
  32. (gdb) n             -- 執行下一步 
  33.  
  34. Breakpoint 2, PrintInfo () at GdbDebug.c:64 
  35. 64              iLen = strlen(pCtrStr); 
  36. (gdb) p iLen        -- 打印(輸出)iLen的值 
  37. $1 = 0 
  38. (gdb) p iLoopFlag   -- 打印(輸出)iLoopFlag的值 
  39. $2 = 0 
  40. (gdb) c             -- 繼續執行      
  41. Continuing. 
  42.  
  43. Program received signal SIGSEGV, Segmentation fault.    -- 程序core掉了 
  44. 0x00007ffff7ae9812 in __strlen_sse2 () from /lib64/libc.so.6 
  45. (gdb) q             -- 退出gdb 
  46. A debugging session is active. 
  47.  
  48.         Inferior 1 [process 26640] will be killed. 
  49.  
  50. Quit anyway? (y or n) y 
  51. ~/zhouzhaoxiong/zzx/GdbDebug> 

從以上分析可知,執行GdbDebug.c文件的第64行時程序core掉了。此時仔細分析程序,發現pCtrStr指針為空。當對一個不存在的指針取長度時,由于找不到地址,程序便崩潰了。修改的辦法也非常的簡單,只需要讓pCtrStr指針指向具體的地址即可。

4.常見gdb命令操作示例

修改之后的代碼如下:

  1. /********************************************************************** 
  2. * 版權所有 (C)2015, Zhou Zhaoxiong。 
  3. * 文件名稱:GdbDebug.c 
  4. * 文件標識:無 
  5. * 內容摘要:Gdb命令演示程序 
  6. * 其它說明:無 
  7. * 當前版本:V1.0 
  8. * 作    者:Zhou Zhaoxiong 
  9. * 完成日期:20151008 
  10. **********************************************************************/ 
  11. #include <stdio.h> 
  12. #include <stdlib.h> 
  13. #include <string.h> 
  14.  
  15. // 數據類型重定義 
  16. typedef unsigned char       UINT8; 
  17. typedef signed   int        INT32; 
  18. typedef unsigned int        UINT32; 
  19.  
  20.  
  21. // 函數聲明 
  22. void Sleep(UINT32 iCountMs); 
  23. void PrintInfo(void); 
  24. INT32 main(); 
  25.  
  26.  
  27. /********************************************************************** 
  28. * 功能描述:主函數 
  29. * 輸入參數:無 
  30. * 輸出參數:無 
  31. * 返 回 值:無 
  32. * 其它說明:無 
  33. * 修改日期        版本號     修改人            修改內容 
  34. * ------------------------------------------------------------------- 
  35. * 20151008       V1.0    Zhou Zhaoxiong       創建 
  36. ***********************************************************************/ 
  37. INT32 main() 
  38.     PrintInfo();   // 在屏幕上輸出消息 
  39.  
  40.     return 0; 
  41.  
  42.  
  43. /********************************************************************** 
  44.  * 功能描述: 在屏幕上輸出消息 
  45.  * 輸入參數: 無 
  46.  * 輸出參數: 無 
  47.  * 返 回 值: 無 
  48.  * 其它說明: 無 
  49.  * 修改日期            版本號            修改人           修改內容 
  50.  * ---------------------------------------------------------------------- 
  51.  * 20151008           V1.0         Zhou Zhaoxiong        創建 
  52.  ************************************************************************/ 
  53. void PrintInfo(void) 
  54.     UINT32 iLoopFlag = 0
  55.     UINT32 iSum      = 0
  56.     UINT32 iLen      = 0
  57.     UINT8 *pCtrStr   = "hello, world!";  // 修改了這行代碼 
  58.  
  59.     iLen = strlen(pCtrStr); 
  60.  
  61.     for (iLoopFlag = 0; iLoopFlag < iLen; iLoopFlag ++)      // 打印消息iLen次 
  62.     { 
  63.         printf("PrintInfo: hello, world!\n"); 
  64.  
  65.         iSumiSum = iSum + iLoopFlag; 
  66.  
  67.         Sleep(10 * 1000);   // 每10s打印一次 
  68.     } 
  69.  
  70.     return; 
  71.  
  72.  
  73. /********************************************************************** 
  74. * 功能描述: 程序休眠 
  75. * 輸入參數: iCountMs-休眠時間(單位:ms) 
  76. * 輸出參數: 無 
  77. * 返 回 值: 無 
  78. * 其它說明: 無 
  79. * 修改日期          版本號       修改人              修改內容 
  80. * ------------------------------------------------------------------ 
  81. * 20151008         V1.0     Zhou Zhaoxiong          創建 
  82. ********************************************************************/ 
  83. void Sleep(UINT32 iCountMs) 
  84.     struct timeval t_timeout = {0}; 
  85.  
  86.     if (iCountMs < 1000
  87.     { 
  88.         t_timeout.tv_sec = 0
  89.         t_timeout.tv_usec = iCountMs * 1000; 
  90.     } 
  91.     else 
  92.     { 
  93.         t_timeout.tv_sec = iCountMs / 1000; 
  94.         t_timeout.tv_usec = (iCountMs % 1000) * 1000; 
  95.     } 
  96.     select(0, NULL, NULL, NULL, &t_timeout);   // 調用select函數阻塞程序 

編譯并運行之后,程序正常,說明問題已被我們解決掉。下面是常見的gdb命令的操作示例:

  1. ~/zhouzhaoxiong/zzx/GdbDebug> gdb GdbDebug    -- 啟動gdb調試 
  2. GNU gdb (GDB) SUSE (7.3-0.6.1) 
  3. Copyright (C) 2011 Free Software Foundation, Inc. 
  4. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
  5. This is free software: you are free to change and redistribute it. 
  6. There is NO WARRANTY, to the extent permitted by law.  Type "show copying" 
  7. and "show warranty" for details. 
  8. This GDB was configured as "x86_64-suse-linux". 
  9. For bug reporting instructions, please see: 
  10. <http://www.gnu.org/software/gdb/bugs/>... 
  11. Reading symbols from /home/zhou/zhouzhaoxiong/zzx/GdbDebug/GdbDebug...done. 
  12. (gdb) b 64     -- 在GdbDebug.c文件第64行設立斷點 
  13. Breakpoint 1 at 0x400611: file GdbDebug.c, line 64. 
  14. (gdb) b 72     -- 在GdbDebug.c文件第72行設立斷點 
  15. Breakpoint 2 at 0x400637: file GdbDebug.c, line 72. 
  16. (gdb) info b   -- 顯示斷點信息 
  17. Num     Type           Disp Enb Address            What 
  18. 1       breakpoint     keep y   0x0000000000400611 in PrintInfo at GdbDebug.c:64 
  19. 2       breakpoint     keep y   0x0000000000400637 in PrintInfo at GdbDebug.c:72 
  20. (gdb) r        -- 運行GdbDebug 
  21. Starting program: /home/zhou/zhouzhaoxiong/zzx/GdbDebug/GdbDebug  
  22.  
  23. Breakpoint 1, PrintInfo () at GdbDebug.c:64 
  24. 64              iLen = strlen(pCtrStr); 
  25. (gdb) p iLen    -- 打印(輸出)iLen的值 
  26. $1 = 0 
  27. (gdb) n         -- 執行下一步 
  28. 66              for (iLoopFlag = 0; iLoopFlag < iLen; iLoopFlag ++)      // 打印消息iLen次 
  29. (gdb) n         -- 執行下一步 
  30. 68              printf("PrintInfo: hello, world!\n"); 
  31. (gdb) p iLoopFlag   -- 打印(輸出)iLoopFlag的值 
  32. $2 = 0 
  33. (gdb) p iLen    -- 打印(輸出)iLen的值 
  34. $3 = 13 
  35. (gdb) n         -- 執行下一步 
  36. PrintInfo: hello, world!    -- 程序的輸出結果 
  37. 70                      iSumiSum = iSum + iLoopFlag; 
  38. (gdb) p iSum    -- 打印(輸出)iSum的值 
  39. $4 = 0 
  40. (gdb) n        -- 執行下一步 
  41.  
  42. Breakpoint 2, PrintInfo () at GdbDebug.c:72 
  43. 72                      Sleep(10 * 1000);   // 每10s打印一次 
  44. (gdb) n       
  45. 66              for (iLoopFlag = 0; iLoopFlag < iLen; iLoopFlag ++)      // 打印消息iLen次 
  46. (gdb) p iLoopFlag 
  47. $5 = 0 
  48. (gdb) n 
  49. 68              printf("PrintInfo: hello, world!\n"); 
  50. (gdb) p iLoopFlag 
  51. $6 = 1 
  52. (gdb) n 
  53. PrintInfo: hello, world! 
  54. 70                      iSumiSum = iSum + iLoopFlag; 
  55. (gdb) p iSum 
  56. $7 = 0 
  57. (gdb) n 
  58.  
  59. Breakpoint 2, PrintInfo () at GdbDebug.c:72 
  60. 72                      Sleep(10 * 1000);   // 每10s打印一次 
  61. (gdb) p iSum 
  62. $8 = 1 
  63. (gdb) finish        -- 一直運行到函數返回 
  64. Run till exit from #0  PrintInfo () at GdbDebug.c:72 
  65. PrintInfo: hello, world! 
  66.  
  67. Breakpoint 2, PrintInfo () at GdbDebug.c:72 
  68. 72                      Sleep(10 * 1000);   // 每10s打印一次 
  69. (gdb) c           -- 繼續執行  
  70. Continuing. 
  71. PrintInfo: hello, world! 
  72.  
  73. Breakpoint 2, PrintInfo () at GdbDebug.c:72 
  74. 72                      Sleep(10 * 1000);   // 每10s打印一次 
  75. (gdb) bt            -- 打印當前的函數調用棧的所有信息 
  76. #0  PrintInfo () at GdbDebug.c:72 
  77. #1  0x00000000004005e5 in main () at GdbDebug.c:41 
  78. (gdb) q              -- 退出gdb 
  79. A debugging session is active. 
  80.  
  81.         Inferior 1 [process 26685] will be killed. 
  82.  
  83. Quit anyway? (y or n) y 
  84. ~/zhouzhaoxiong/zzx/GdbDebug>  

作為Linux下調試C/C++程序的工具,大家一定要熟練掌握gdb的用法。

【本文是51CTO專欄作者周兆熊的原創文章,作者微信公眾號:周氏邏輯(logiczhou)】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2017-05-10 15:30:30

skynet崩潰程序

2015-10-09 16:42:16

GDB 排查Python程序故障

2010-06-04 17:48:20

Linux編程工具

2022-12-19 10:10:07

GDB命令

2009-07-27 08:50:29

2025-07-08 00:00:00

2021-03-15 06:23:40

GDB調試代碼編程語言

2015-08-14 09:21:09

gdb工具調試 Go

2025-09-28 01:10:00

2021-07-28 08:53:53

GoGDB調試

2021-07-05 11:00:43

GDB棧空間編程語言

2011-07-22 17:05:56

IOS 控制臺 GDB

2023-05-04 12:39:27

GDB命令程序

2025-03-31 03:25:00

2009-12-18 16:08:17

Fedora proc

2010-01-20 10:39:52

Linuxcore

2022-09-15 14:56:12

GDB調試鴻蒙

2025-07-03 02:00:00

2024-09-13 17:06:54

EF Core分組查詢

2012-05-21 10:13:05

XCode調試技巧
點贊
收藏

51CTO技術棧公眾號

日韩av午夜在线观看| 热久久久久久| 国产性天天综合网| 国产精品一区二区三区免费视频| 顶级黑人搡bbw搡bbbb搡| 中文字幕免费高清在线观看| 日本黄色精品| 精品国产一二三| 激情五月亚洲色图| 欧美大片黄色| 欧美激情中文不卡| 痴汉一区二区三区| 中文字幕+乱码+中文乱码www| 欧美黄色一级视频| 亚洲伦理中文字幕| 欧洲精品一区二区三区久久| 99视频免费看| 老鸭窝毛片一区二区三区| 日韩中文字幕在线免费观看| 污污污www精品国产网站| 福利一区二区免费视频| 亚洲影视在线观看| 亚洲高清视频在线观看| 日韩在线观看视频一区| 久久精品国产在热久久| 57pao国产精品一区| www国产视频| 欧美美女福利视频| 日韩欧美一区二区三区久久| 日韩中文字幕在线不卡| 在线观看免费黄色| 久久久久久麻豆| 国产精品乱码| 99精品久久久久久中文字幕| 奇米影视一区二区三区| 国产91精品视频在线观看| 免费一级黄色大片| 91精品国产视频| 中文字幕欧美精品日韩中文字幕| 久久99999| 涩涩涩视频在线观看| 亚洲精品美腿丝袜| 亚洲精品8mav| 国产毛片在线| 久久99国产精品久久99果冻传媒| 欧美在线观看日本一区| 国产精品日日夜夜| 女生裸体视频一区二区三区| www.久久色.com| 1024手机在线观看你懂的| 九七影院97影院理论片久久| 日韩欧美精品网址| 欧美视频第一区| 桃色av一区二区| 午夜激情久久久| 亚洲人成无码网站久久99热国产| 欧洲在线视频| 亚洲国产一区二区视频| 97超碰国产精品| 日韩免费影院| 亚洲成a人片在线观看中文| 欧美日韩午夜爽爽| 成人av影院在线观看| 久久久99久久| 日韩精品久久一区二区三区| 欧美精品久久久久久久久久丰满| 91农村精品一区二区在线| 久久亚洲高清| 黄色av网站在线看| 中文字幕免费一区| 一区二区不卡在线视频 午夜欧美不卡'| 国产区高清在线| 国产精品网站在线观看| 在线免费观看一区二区三区| av在线免费观看网址| 亚洲制服欧美中文字幕中文字幕| www.欧美黄色| 亚洲电影观看| 精品视频在线免费观看| 免费在线观看污网站| 国产精品视频一区二区三区| 日韩精品一区国产麻豆| 亚州av综合色区无码一区| 亚洲欧美成人vr| 中文字幕在线观看日韩| 亚洲天堂一级片| 伊人激情综合| 日韩美女免费线视频| 中文字幕 国产| 国产精品一级二级三级| 国产精品激情av电影在线观看| 精品国产青草久久久久96| 加勒比av一区二区| 国产精品观看在线亚洲人成网| 这里只有精品免费视频| 国产一区不卡视频| 久久综合九色综合网站| 五月天婷婷在线视频| 亚洲综合另类小说| 乱子伦视频在线看| 国产精品视频一区视频二区| 亚洲精品久久久久久久久| 国产在线综合视频| 国产一区视频在线观看免费| 国产激情视频一区| 亚洲成人久久精品| 国产视频视频一区| 久久亚洲国产成人精品无码区| 三级成人黄色影院| 日韩女同互慰一区二区| 国产伦理片在线观看| 国内精品久久久久国产盗摄免费观看完整版 | 国产精品毛片视频| 中文字幕一区二区精品| 国产污污视频在线观看| 激情综合色综合久久综合| 国产一区免费视频| 182tv在线播放| 欧美亚洲综合一区| 亚洲调教欧美在线| 欧美日韩亚洲一区三区 | 成人精品在线| 亚洲人永久免费| 日韩免费观看一区二区| 国产做a爰片久久毛片| 日韩女优中文字幕| 在线看片福利| 精品成人佐山爱一区二区| 亚洲aaa视频| 久热国产精品| 欧美日韩亚洲在线| 女海盗2成人h版中文字幕| 日韩欧美一区二区久久婷婷| 国产精品www爽爽爽| 国产精品丝袜xxxxxxx| av观看久久| av黄在线观看| 欧美精品久久99| 国产精品酒店视频| 免费日本视频一区| 日韩片电影在线免费观看| 亚洲性受xxx喷奶水| 亚洲福利视频网站| 精品在线视频观看| 国产成人精品综合在线观看| 亚洲国产精品123| 日韩免费小视频| 国产一区二区三区在线免费观看| 成人午夜视频在线播放| 国产精品亚洲产品| 国产精品免费一区二区三区在线观看 | 国产精品4hu.www| 国产亚洲精品日韩| 国产偷人爽久久久久久老妇app| 久久欧美中文字幕| 亚洲精品中文字幕在线| 欧美电影网址| 一区二区日韩精品| 中文字幕一区二区三区免费看| 久久久久一区二区三区四区| 欧美日韩在线不卡视频| 网红女主播少妇精品视频| 日本91av在线播放| 极品白浆推特女神在线观看| 色网站国产精品| 国产不卡的av| 欧美精品一区二区三区久久久竹菊| 亚洲aa在线观看| 日本aa在线| 亚洲国产高清自拍| 国产午夜精品久久久久| 国产免费观看久久| 国产成人美女视频| 欧美日韩免费| 美乳视频一区二区| 国产资源一区| 久久国产精品网站| 手机av免费在线观看| 色综合久久66| 99成人在线观看| 国产成人综合网站| 国产乱子伦农村叉叉叉| 精品一区二区三区中文字幕视频 | 国产蜜臀av在线播放| 亚洲精品福利在线| 中文字幕在线观看视频免费| 亚洲欧洲性图库| 五十路六十路七十路熟婆| 久久婷婷激情| 日本大胆人体视频| 国内成人精品| 99久久久精品免费观看国产| 日本在线影院| 超碰精品一区二区三区乱码| 天天躁日日躁狠狠躁喷水| 欧美性xxxxxxxx| 国产91av视频| 国产精品传媒入口麻豆| 亚洲av成人片无码| 久久精品国产**网站演员| 日本丰满少妇xxxx| 99国产**精品****| 久久久久九九九| 久久久久久久久成人| 青青在线视频一区二区三区| 成人在线播放免费观看| 精品小视频在线| 国产99对白在线播放| 日本韩国一区二区三区视频| 久久久99精品| 国产精品欧美极品| 国产精品密蕾丝袜| 成人av网站免费| 99中文字幕在线| 日本免费在线视频不卡一不卡二 | 久久国产福利| 男人天堂网站在线| 青青草成人影院| 免费日韩av电影| 88久久精品| 成人美女av在线直播| 欧美一级二级视频| 国产一区二区美女视频| 黑人精品一区二区三区| 欧美精品tushy高清| 免费污污视频在线观看| 亚洲成人av电影| 久久久久久av无码免费网站| 自拍偷拍欧美激情| 日本污视频网站| 国产女人水真多18毛片18精品视频| 日本黄色动态图| 成人激情综合网站| 人妻精油按摩bd高清中文字幕| 久久精品99久久久| 婷婷激情四射五月天| 久久精选视频| 欧美亚洲日本在线观看| 性伦欧美刺激片在线观看| 国产视频九色蝌蚪| 一本久道久久久| 亚欧无线一线二线三线区别| 亚洲二区在线| 国产女大学生av| 在线综合视频| 欧美三级一级片| 久久国产精品99国产| 日本在线视频www| 蜜桃av一区| 好男人www社区| 免费观看在线综合| 中文字幕22页| 国产精品一区二区在线观看不卡 | 亚洲国产高清在线观看| 欧美精品在线观看| 美女羞羞视频在线观看| 久久久成人的性感天堂| 麻豆传媒在线免费看| 久久激情视频免费观看| 麻豆免费在线观看| 欧美黑人极品猛少妇色xxxxx | 最新国产成人av网站网址麻豆| 国产视频在线观看免费 | 手机av免费在线观看| 日韩精品中文在线观看| 国产69久久| 日韩有码视频在线| 青春草视频在线观看| 97超级碰碰碰| 日本少妇一区| 成人做爽爽免费视频| 日韩一二三区| 久久久影院一区二区三区| 欧洲美女日日| 国产区日韩欧美| 米奇777超碰欧美日韩亚洲| 91入口在线观看| 久久夜色电影| 日韩免费av电影| 亚洲欧美偷拍自拍| 免费超爽大片黄| 久久精品导航| 涩涩网站在线看| 不卡av在线网| 老司机福利在线观看| 亚洲精品老司机| 中文字幕亚洲乱码熟女1区2区| 欧美日韩一级片在线观看| www.国产.com| 国产午夜精品视频| 牛牛精品在线| 国产精品视频区| 国产成人高清精品免费5388| 日本一区免费看| 欧美午夜视频| 中国黄色片免费看| proumb性欧美在线观看| 激情五月深爱五月| 亚洲sss视频在线视频| 中文字幕+乱码+中文乱码91| 亚洲国产精品热久久| 香蕉视频在线看| 午夜精品理论片| 亚洲最大的免费视频网站| 久久久久久一区| 欧美91精品| 91精品无人成人www| 99热在这里有精品免费| 波多野结衣在线网址| 欧美中文字幕久久| 少妇精品视频一区二区| 成年人精品视频| 久久精品超碰| 欧美日韩精品一区| 亚洲日本国产| 亚洲欧美一区二区三区不卡| 久久久久久久网| 在线观看免费av片| 精品播放一区二区| av在线导航| 国产日韩专区在线| 日韩av片子| 国产主播在线看| av亚洲精华国产精华精华 | 自拍日韩欧美| 中文字幕日韩综合| 国产女主播一区| 久久影视中文字幕| 亚洲欧洲国产伦综合| 91破解版在线观看| 波多野结衣成人在线| 亚洲精品一区二区在线看| 国产又大又黄又粗又爽| 国产亚洲成av人在线观看导航 | 国产精品免费区二区三区观看| 亚洲国产精品久久久久蝴蝶传媒| 天天干天天操天天做| 亚洲国产高清aⅴ视频| 波多野结衣视频观看| 亚洲日本中文字幕免费在线不卡| 97人人爽人人澡人人精品| 成人av播放| 影音先锋日韩资源| 欲求不满的岳中文字幕| 欧美日韩精品二区| 四虎影院在线域名免费观看| 91精品国产亚洲| 西野翔中文久久精品字幕| 人妻有码中文字幕| 久久精品无码一区二区三区| 少妇高潮av久久久久久| 亚洲网址你懂得| 国内自拍亚洲| 中文字幕超清在线免费观看| 国产美女娇喘av呻吟久久| 一区二区国产精品精华液| 欧美不卡123| 2020国产在线| 欧美精品在线一区| 丝袜亚洲另类欧美综合| 国产精品麻豆一区| 91精品视频网| 免费毛片在线看片免费丝瓜视频| 产国精品偷在线| 国产日韩一区二区三区在线播放 | 第四色婷婷基地| 亚洲免费观看高清| 日本高清视频www| 国产999在线| 9999国产精品| 岛国av免费观看| 第一福利永久视频精品 | 国产精品入口麻豆九色| 一区二区三区免费在线| 欧美黄色免费网站| 亚洲人成网站77777在线观看| 国内自拍视频一区| 亚洲欧美日韩在线| 三级在线观看网站| 国产精品久久久久久久久久东京 | av首页在线观看| 久久精品亚洲国产| 欧美美女啪啪| 999精品视频在线| 亚洲综合一区二区| 欧美日韩激情视频一区二区三区| 国产日韩精品一区二区| 亚洲网站视频| 国产一二三四视频| 精品国产一区久久| 蜜桃精品在线| 人妻互换免费中文字幕| 欧美国产国产综合| 欧美 日韩 国产 成人 在线 91| 国产精品第一第二| 国模大胆一区二区三区| 超碰人人干人人| 亚洲国产精品小视频| 日韩综合av| 日本成年人网址|