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

記一次 .NET某工業視覺軟件崩潰分析

開發 前端
在我的dump分析之旅中曾遇到過一次相似的生產故障,本篇文章主要還是對訓練營里這位朋友的有求必應吧,不過說實話,多分析幾個像這樣的dump,會極大的提升你的高級調試能力。

一、背景

1. 講故事

前兩天給訓練營里的一位學員分析了一個dump,學員因為弄了一整天也沒找到禍根,被我一下子弄出來了,極度想看看我是怎么分析的?由于在微信上不能一言兩語表盡,干脆寫一篇文章出來詳細的講講吧,哈哈,訓練營里的學員得有求必應哈。。。話不多說,我們一起探索下這個程序的崩潰之路吧。

二、WinDbg分析

1. 為什么會崩潰

這個比較簡單,因為默認會自動定位到崩潰的線程,使用 .ecxr 切到崩潰前的上下文即可,然后使用 k 觀察崩潰點,參考如下:

0:044> .ecxr
rax=0000000000000000 rbx=00000217a6c78f90 rcx=0000000000000000
rdx=0000000000000000 rsi=000000242c46fdd0 rdi=00000217ff1594a0
rip=00007ffdb35eb699 rsp=000000242c46fb40 rbp=000000242c46fc70
 r8=00007ffdb35eb699  r9=00000217ea61fc08 r10=00000000e0434352
r11=0000000000000001 r12=00000217a6c78f90 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0         nv up ei pl nz na pe nc
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202
KERNELBASE!RaiseException+0x69:
00007ffd`b35eb699 0f1f440000      nop     dword ptr [rax+rax]
0:044> k
  *** Stack trace for last set context - .thread/.cxr resets it
 # Child-SP          RetAddr               Call Site
00 00000024`2c46fb40 00007ffd`51bf8c6f     KERNELBASE!RaiseException+0x69
01 00000024`2c46fc20 00007ffd`51890108     clr!UMThunkStubRareDisableWorker+0x3f
02 00000024`2c46fc50 00007ffc`dc826748     clr!UMThunkStub+0x128
03 00000024`2c46fce0 00007ffc`dc827406     MVCAMSDK_X64+0x6748
04 00000024`2c46fd80 00007ffc`dc9d21eb     MVCAMSDK_X64!CameraGrabber_GetCameraDevInfo+0xb96
05 00000024`2c46fe50 00007ffc`dc9d227f     MVCAMSDK_X64!CameraGigeEnumerateDevice+0x167f2b
06 00000024`2c46fe80 00007ffd`b5a07374     MVCAMSDK_X64!CameraGigeEnumerateDevice+0x167fbf
07 00000024`2c46feb0 00007ffd`b5ebcc91     kernel32!BaseThreadInitThunk+0x14
08 00000024`2c46fee0 00000000`00000000     ntdll!RtlUserThreadStart+0x21

從卦中可以看到程序是在clr 的 UMThunkStubRareDisableWorker 函數中故意拋出的異常,接下來觀察下該函數代碼。

extern "C" VOID __stdcall UMThunkStubRareDisableWorker(Thread* pThread, UMEntryThunk* pUMEntryThunk, Frame* pFrame)
    {
        if (!CanRunManagedCode())
        {
            pThread->m_fPreemptiveGCDisabled = 0;
            COMPlusThrowBoot(E_PROCESS_SHUTDOWN_REENTRY);
        }
    }

    BOOL CanRunManagedCode(BOOL fCannotRunIsUserError, HINSTANCE hInst)
    {
        if (g_fForbidEnterEE == TRUE)
            return FALSE;

        if ((g_fEEShutDown & ShutDown_Finalize2) && !GCHeap::GetGCHeap()->IsCurrentThreadFinalizer())
            return FALSE;

        if (g_pPreallocatedOutOfMemoryException == NULL)
            return FALSE;

        return TRUE;
    }

從卦中的代碼看是因為 CanRunManagedCode() 返回false導致的,到內存中觀察這幾個變量即可。

0:044> dp clr!g_fForbidEnterEE L1
00007ffd`5201d548  00000000`00000000

0:044> dp clr!g_fEEShutDown L1
00007ffd`520140b0  00000000`00000007

0:044> dp clr!g_pPreallocatedOutOfMemoryException L1
00007ffd`52013e08  00000217`e4f513d8

看到卦中的幾個變量大概就知道了,原來當前程序正在等待 終結器線程 執行完畢的 EEShutDown 狀態。

2. 真的處于關閉狀態嗎

剛才只是通過變量觀察,接下來我們觀察線程棧來進一步求證,分別切到主線程和終結器線程觀察調用棧,參考如下:

0:000> ~0s;k;~2s;k
win32u!NtUserMsgWaitForMultipleObjectsEx+0x14:
00007ffd`b3dfa104 c3              ret
 # Child-SP          RetAddr               Call Site
00 00000024`2773f578 00007ffd`b3f40c8e     win32u!NtUserMsgWaitForMultipleObjectsEx+0x14
...
08 00000024`2773f9c0 00007ffd`518828ff     clr!CLREventBase::WaitEx+0xab
09 00000024`2773fa30 00007ffd`51882842     clr!WaitForEndOfShutdown_OneIteration+0xb3
0a 00000024`2773fac0 00007ffd`5171f703     clr!WaitForEndOfShutdown+0x1a
0b 00000024`2773faf0 00007ffd`518243f9     clr!EEShutDown+0xd3
0c 00000024`2773fb40 00007ffd`51823f34     clr!HandleExitProcessHelper+0x29
0d 00000024`2773fb70 00007ffd`51823e14     clr!_CorExeMainInternal+0xf8
0e 00000024`2773fc00 00007ffd`96d7d6ea     clr!CorExeMain+0x14
0f 00000024`2773fc40 00007ffd`96c3ac42     mscoreei!CorExeMain+0xfa
10 00000024`2773fca0 00007ffd`b5a07374     mscoree!CorExeMain_Exported+0x72
11 00000024`2773fcd0 00007ffd`b5ebcc91     kernel32!BaseThreadInitThunk+0x14
12 00000024`2773fd00 00000000`00000000     ntdll!RtlUserThreadStart+0x21

paddle_inference_c!paddle::CreatePaddlePredictor<paddle::AnalysisConfig,3>+0x180be:
00007ffc`d39a1a9e 488b01          mov     rax,qword ptr [rcx] ds:00000217`89df37b0=00007ffcd7791ff0
 # Child-SP          RetAddr               Call Site
00 00000024`27eff080 00007ffc`d39a1a8f     paddle_inference_c!paddle::CreatePaddlePredictor<paddle::AnalysisConfig,3>+0x180be
01 00000024`27eff0b0 00007ffc`d39a1a8f     paddle_inference_c!paddle::CreatePaddlePredictor<paddle::AnalysisConfig,3>+0x180af
02 00000024`27eff0e0 00007ffc`d39a1a8f     paddle_inference_c!paddle::CreatePaddlePredictor<paddle::AnalysisConfig,3>+0x180af
...
0e 00000024`27eff3b0 00007ffc`f20cbbde     paddle_inference_c!PD_PredictorDestroy+0x39
0f 00000024`27eff3e0 00007ffc`f943796a     0x00007ffc`f20cbbde
10 00000024`27eff4b0 00007ffc`f9437930     Sdcb_PaddleInference!Sdcb.PaddleInference.PaddlePredictor.Dispose+0x1a
11 00000024`27eff4e0 00007ffd`518915e6     Sdcb_PaddleInference!Sdcb.PaddleInference.PaddlePredictor.Finalize+0x10
12 00000024`27eff510 00007ffd`5173b6c6     clr!FastCallFinalizeWorker+0x6
13 00000024`27eff540 00007ffd`5173bd73     clr!FastCallFinalize+0x5a
14 00000024`27eff580 00007ffd`5173bcae     clr!MethodTable::CallFinalizer+0xb7
15 00000024`27eff5c0 00007ffd`5173b8e7     clr!CallFinalizer+0x5e
...
1e 00000024`27effa50 00000000`00000000     ntdll!RtlUserThreadStart+0x21

其實到這里邏輯全部清楚了,用戶點擊了關閉程序,但此時終結器線程正在執行,所以執行引擎需要等待它執行完,在這期間是禁止除終結器線程之外的任何線程再對托管方法的調用,一旦有就會拋出異常,畫個簡圖如下:

圖片圖片

3. call托管方法在哪里

在錯誤的時間出現了一個對的人,這是一種意難平,接下來把這個對的人給找出來,即 UMThunkStubRareDisableWorker方法的第二個參數pUMEntryThunk,因為這里面的 m_pManagedTarget 即托管方法的入口點,模型如下:

class UMEntryThunk
{
    private:
    // The start of the managed code
    const BYTE* m_pManagedTarget;

    // This is used for profiling.
    PTR_MethodDesc m_pMD;
}

那如何挖呢?觀察UMThunkStubRareDisableWorker方法匯編代碼即可。

0:044> k
  *** Stack trace for last set context - .thread/.cxr resets it
 # Child-SP          RetAddr               Call Site
00 00000024`2c46fb40 00007ffd`51bf8c6f     KERNELBASE!RaiseException+0x69
01 00000024`2c46fc20 00007ffd`51890108     clr!UMThunkStubRareDisableWorker+0x3f
02 00000024`2c46fc50 00007ffc`dc826748     clr!UMThunkStub+0x128
03 00000024`2c46fce0 00007ffc`dc827406     MVCAMSDK_X64+0x6748
04 00000024`2c46fd80 00007ffc`dc9d21eb     MVCAMSDK_X64!CameraGrabber_GetCameraDevInfo+0xb96
05 00000024`2c46fe50 00007ffc`dc9d227f     MVCAMSDK_X64!CameraGigeEnumerateDevice+0x167f2b
06 00000024`2c46fe80 00007ffd`b5a07374     MVCAMSDK_X64!CameraGigeEnumerateDevice+0x167fbf
07 00000024`2c46feb0 00007ffd`b5ebcc91     kernel32!BaseThreadInitThunk+0x14
08 00000024`2c46fee0 00000000`00000000     ntdll!RtlUserThreadStart+0x21

0:044> uf 00007ffd`51890108
00007ffd`5188ffe0 4154            push    r12
00007ffd`5188ffe2 55              push    rbp
00007ffd`5188ffe3 4883ec78        sub     rsp,78h
00007ffd`5188ffe7 488d6c2420      lea     rbp,[rsp+20h]
00007ffd`5188ffec c6454000        mov     byte ptr [rbp+40h],0
00007ffd`5188fff0 e8abe0ffff      call    clr!GetThread (00007ffd`5188e0a0)
00007ffd`5188fff5 4885c0          test    rax,rax
00007ffd`5188fff8 746f            je      clr!UMThunkStub+0x89 (00007ffd`51890069)  Branch
...
00007ffd`518900f9 4c895548        mov     qword ptr [rbp+48h],r10
00007ffd`518900fd 498bcc          mov     rcx,r12
00007ffd`51890100 498bd2          mov     rdx,r10
00007ffd`51890103 e8288b3600      call    clr!UMThunkStubRareDisableWorker (00007ffd`51bf8c30)

根據x64調用協定,參數是放在 r10 寄存器中,而r10剛好放在 rbp+48h 中,所以挖出這個棧位置即可,簡單計算為。

0:044> ? 00000024`2c46fce0-0x8-0x8-0x8-0x78+0x20
Evaluate expression: 155361672304 = 00000024`2c46fc70

0:044> dp 00000024`2c46fc70+0x48 L1
00000024`2c46fcb8  00000217`ff1594a0

0:044> dp 00000217`ff1594a0 L1
00000217`ff1594a0  00007ffc`f2f49380

0:044> !U 00007ffc`f2f49380
Unmanaged code
00007ffc`f2f49380 e98bbd0500      jmp     00007ffc`f2fa5110
00007ffc`f2f49385 5f              pop     rdi
00007ffc`f2f49386 0f              ???
00007ffc`f2f49387 25e8e35194      and     eax,9451E3E8h
00007ffc`f2f4938c 5e              pop     rsi
00007ffc`f2f4938d 5e              pop     rsi
00007ffc`f2f4938e 1124e8          adc     dword ptr [rax+rbp*8],esp
00007ffc`f2f49391 db5194          fist    dword ptr [rcx-6Ch]
00007ffc`f2f49394 5e              pop     rsi
00007ffc`f2f49395 5e              pop     rsi

0:044> !ip2md 00007ffc`f2fa5110
MethodDesc:   00007ffcf33bd9e8
Method Name:  baslerCamera.MVCam.CameraGrabberFrameCallback(IntPtr, IntPtr, baslerCamera.tSdkFrameHead ByRef, IntPtr)
Class:        00007ffcf33c1c98
MethodTable:  00007ffcf33be828
mdToken:      0000000006000067
Module:       00007ffcf2352f60
IsJitted:     yes
CodeAddr:     00007ffcf2fa5110
Transparency: Critical

從 baslerCamera 來看是一個工業相機,接下來趕緊尋找源代碼,截圖如下:

圖片圖片

圖中的 m_FrameCallback 是一個delegate函數,并通過 CameraGrabber_SetRGBCallback 方法傳給了C++,所以在關閉程序的時候一定要先釋放掉這個 calllback 來和C++撇清關系,否則就會有災難的降臨。

三、總結

在我的dump分析之旅中曾遇到過一次相似的生產故障,本篇文章主要還是對訓練營里這位朋友的有求必應吧,不過說實話,多分析幾個像這樣的dump,會極大的提升你的高級調試能力。

責任編輯:武曉燕 來源: 一線碼農聊技術
相關推薦

2024-05-31 12:56:06

.NET代碼方法

2024-07-12 11:20:34

.NET崩潰視覺程序

2023-06-26 00:12:46

2024-03-28 12:56:36

2022-10-09 10:47:37

NET視覺軟件

2023-03-26 20:24:50

ERP網站系統

2024-03-26 00:44:53

.NETCIM系統

2024-07-09 11:51:20

Windows線程池源碼

2022-10-25 14:17:01

.NET代碼程序

2025-10-29 01:11:00

.NET系統windows

2023-06-29 17:55:00

.NET日志WinDbg

2024-09-14 10:28:56

.NET卡死程序

2024-06-13 17:09:55

2024-06-04 10:54:34

.NET代碼程序

2023-09-27 07:23:10

.NET監控軟件

2023-10-07 13:28:53

.NET軟件賬本

2023-05-15 11:15:50

.NET門診語句

2024-06-06 10:51:15

自動化系統推測

2025-09-02 01:35:00

.NET光學定位軟件

2025-09-05 02:22:00

.NETCRM物流行業
點贊
收藏

51CTO技術棧公眾號

欧美色图激情小说| 欧美aaa视频| 本田岬高潮一区二区三区| 性欧美视频videos6一9| 一级黄色片大全| 国产一区二区色噜噜| 亚洲精品亚洲人成人网 | 一本久久a久久精品vr综合| 97在线公开视频| 亚洲每日在线| 色青青草原桃花久久综合| 久久久久亚洲AV成人网人人小说| 一区二区三区短视频| 中文字幕亚洲精品在线观看| 国产欧美日韩综合一区在线观看| 亚洲图片欧美日韩| 黄色精品免费| 日韩中文字幕亚洲| 波多野结衣a v在线| 日韩一区二区三区高清在线观看| 色狠狠综合天天综合综合| 日韩不卡一二区| 视频二区在线| 国产九九视频一区二区三区| 欧美孕妇与黑人孕交| 午夜激情视频在线播放| 你懂的视频欧美| 精品美女一区二区三区| 在线观看国产福利| 涩涩视频网站在线观看| 亚洲综合色婷婷| 亚洲欧美成人一区| 免费国产在线视频| av成人动漫在线观看| 国产精品欧美激情| 天堂网视频在线| 亚洲美女毛片| 欧美交受高潮1| 欧美卡一卡二卡三| 久久香蕉国产| 中文字幕亚洲精品| 欧美三级视频网站| 国产探花一区| 亚洲欧洲偷拍精品| 一卡二卡三卡四卡| 日韩精品福利一区二区三区| 精品国产伦一区二区三区观看方式 | 国产在线一区二区三区| 中文字幕在线欧美| 性欧美长视频| 欧美一区二区三区免费观看| 日本少妇做爰全过程毛片| 欧美视频成人| 久久久久久久久久久久av| 亚洲天堂黄色片| 久久久久国产精品| 久久久国产视频91| 国产性xxxx| 欧美激情性爽国产精品17p| 久久国产精品亚洲| 欧美人妻精品一区二区三区 | 欧美日韩中出| 欧美一区二区三区在线观看| 亚洲精品在线网址| 6080成人| 亚洲精品久久久久| 亚洲av无码一区二区二三区| 欧美美女在线| www国产精品视频| 精品99在线观看| 黄色成人在线网址| 欧美在线视频观看免费网站| 永久免费无码av网站在线观看| 爽好久久久欧美精品| 国产精品视频免费在线| 国产精品一级视频| 粉嫩蜜臀av国产精品网站| 久久99精品久久久久久久青青日本| 好吊视频一二三区| 国产亚洲一区二区三区四区| 性欧美.com| 曰本三级在线| 欧美视频免费在线| 亚洲人成无码www久久久| 国产成人精品一区二区三区视频 | 中文字幕中文字幕一区二区 | 亚洲区欧洲区| 狠狠躁夜夜躁人人爽天天天天97| 国产偷人视频免费| 亚洲美女色播| 亚洲高清福利视频| 国产日韩精品中文字无码| 亚洲一区二区| 1769国产精品| 国产精品视频一区二区三区,| 国产成a人无v码亚洲福利| 欧美精品123| 成人video亚洲精品| 天天影视色香欲综合网老头| 久草福利视频在线| 51vv免费精品视频一区二区| 正在播放亚洲1区| 久久久久久久蜜桃| 美女一区二区三区在线观看| 国产久一道中文一区| 超碰在线国产| 亚洲国产精品自拍| 日本在线播放一区二区| 日韩欧美国产大片| 精品少妇一区二区30p| 久久久久久不卡| 国产成人免费高清| 色女孩综合网| 极品av在线| 日韩一区二区免费视频| 久久久视频6r| 亚洲区一区二| 91精品黄色| 日韩在线免费电影| 色综合久久久久网| 欧美性生交xxxxx| 久久在线视频| 国产精品电影一区| 性xxxx视频| 亚洲一级不卡视频| 亚洲第一区第二区第三区| 伊人久久大香线蕉综合网蜜芽| 成年无码av片在线| 亚洲在线观看av| 久久久久88色偷偷免费| 无码粉嫩虎白一线天在线观看 | 国产精品久久久久免费| 看女生喷水的网站在线观看| 在线观看日韩av先锋影音电影院| 女同性恋一区二区三区| 欧美日韩国产亚洲一区| 亚洲精品免费在线视频| 免费黄色在线网站| 欧美日韩国产色站一区二区三区| www.av天天| 久久久夜精品| 欧美一区二区三区成人久久片| 九色porny丨入口在线| 亚洲国产日韩精品在线| 久久久无码精品亚洲国产| 国产乱码一区二区三区| 91嫩草国产丨精品入口麻豆| 欧美影院视频| 色久欧美在线视频观看| 中文字幕人成人乱码亚洲电影| 久久久久久亚洲综合| 国产高清精品在线观看| 清纯唯美亚洲经典中文字幕| 97人人做人人爱| 三级视频在线看| 亚洲国产aⅴ成人精品无吗| 欧美夫妇交换xxx| 一区二区久久| 开心色怡人综合网站| 天天综合av| 亚洲欧美中文日韩在线v日本| 精品国产午夜福利| 国产欧美一区视频| 性生活免费在线观看| 欧美大人香蕉在线| 7777精品久久久大香线蕉小说| 日本三级韩国三级欧美三级| 精品国产网站在线观看| 亚洲欧美精品一区二区三区| 久久久精品日韩欧美| 亚洲一区在线不卡| 自拍视频亚洲| 国产一区精品视频| 亚洲不卡系列| 欧美成人sm免费视频| 男人的天堂a在线| 色综合中文综合网| 免费成人深夜蜜桃视频| 国产成人综合网站| 日本福利视频在线| 欧美午夜精彩| 96国产粉嫩美女| 亚洲美女尤物影院| 深夜福利国产精品| 国产综合在线播放| 欧美性大战xxxxx久久久| 中文字幕亚洲欧美日韩| 99综合电影在线视频| 欧美伦理视频在线观看| 欧美一区精品| 欧美日本韩国在线| 欧美三级一区| 日韩美女免费线视频| 黄色在线免费网站| 亚洲福利在线播放| 91资源在线视频| 午夜精品久久久久久久久久| 日本成人免费在线观看 | 激情偷拍久久| 亚洲图片都市激情| 台湾色综合娱乐中文网| 91亚洲精华国产精华| 午夜影视一区二区三区| 美女999久久久精品视频 | 欧美成人午夜影院| 理论视频在线| 精品国精品国产尤物美女| 18国产免费视频| 亚洲v精品v日韩v欧美v专区| 日本污视频网站| jiyouzz国产精品久久| 国产aⅴ激情无码久久久无码| 91精品国产自产观看在线 | 久久久久人妻一区精品色| 丁香激情综合国产| 五月天激情播播| 日韩中文字幕91| 蜜臀av无码一区二区三区| 91精品亚洲| 午夜免费电影一区在线观看| 粉嫩久久久久久久极品| 成人中文字幕+乱码+中文字幕| 亚洲精品福利电影| 国内精品免费午夜毛片| av激情在线| 色婷婷**av毛片一区| 国产最新视频在线| 亚洲第一网站免费视频| 国产99久久九九精品无码免费| 欧美性色黄大片| 成人一级免费视频| 色综合天天做天天爱| 日韩精品一卡二卡| 午夜精品在线视频一区| 国产性猛交普通话对白| 亚洲美女一区二区三区| 欧美美女性生活视频| 国产精品电影一区二区三区| 性の欲びの女javhd| 国产校园另类小说区| 免费观看av网站| 26uuu精品一区二区在线观看| 久久久久9999| 99这里都是精品| 漂亮人妻被黑人久久精品| 成人动漫中文字幕| 亚洲自拍偷拍精品| 91小视频免费观看| 日本高清www| 日本一区二区三级电影在线观看 | 亚洲视频每日更新| 午夜爱爱毛片xxxx视频免费看| 最新热久久免费视频| 国产又粗又硬又长又爽| 亚洲色图欧洲色图| 欧美极品视频在线观看| 亚洲国产欧美一区二区三区丁香婷| 久久久久久久久久久97| 亚洲国产精品一区二区久久| 日韩av黄色片| 在线亚洲精品福利网址导航| 国产女优在线播放| 在线成人av影院| 91tv国产成人福利| 日韩精品在线网站| 日韩一级免费视频| 亚洲欧美中文在线视频| 中文日本在线观看| 九九精品视频在线观看| www.8ⅹ8ⅹ羞羞漫画在线看| 日韩av片电影专区| 久久婷婷五月综合色丁香| 7777精品伊久久久大香线蕉语言 | 亚洲国产精品va| 欧美高清电影在线| 久久精品国产v日韩v亚洲| 天堂av资源在线观看| 91精品国产91久久久久久最新 | 日本韩国视频一区二区| 在线视频1卡二卡三卡| 精品国产乱码久久久久久蜜臀| 手机福利在线| 精品国产一区二区在线| 91福利在线尤物| 国产精品免费久久久| 亚洲国产高清在线观看| 久久av二区| 天天做天天爱天天爽综合网| a级黄色一级片| 久久99精品国产| 国产精品无码在线| 国产精品进线69影院| 国产福利久久久| 欧美日韩一区视频| 日韩在线观看视频一区二区三区 | youjizz亚洲女人| 亚洲专区一二三| 亚洲国产无线乱码在线观看| 日韩女优毛片在线| 国产特黄在线| 久久久久久伊人| 色综合视频一区二区三区日韩| 国产精品10p综合二区| 成人a'v在线播放| 给我免费播放片在线观看| 蜜臀久久99精品久久久画质超高清| 乱码一区二区三区| 国产精品久久久久久久久免费桃花 | 国内成人精品一区| 亚洲tv在线| 日本一区二区免费看| 亚洲日韩视频| 超碰91在线播放| 国产人成亚洲第一网站在线播放| 亚洲一区二区91| 欧美精品乱人伦久久久久久| 三级在线电影| 国内精品400部情侣激情| 自拍偷拍亚洲图片| 欧美三日本三级少妇三99| 1024成人| 亚洲精品鲁一鲁一区二区三区| 国产精品三级视频| 久久久成人免费视频| 亚洲精品国产精品久久清纯直播 | 亚洲精品成人a在线观看| 亚洲成人av网址| 日韩不卡中文字幕| 成人福利影视| 不卡一区二区三区视频| 亚欧美无遮挡hd高清在线视频| 国产精品乱码久久久久| 久久综合九色综合欧美98| 欧美黄色aaa| 欧美精品777| 日本高清视频在线观看| 国产精品视频1区| 成人激情开心网| 成年人在线观看视频免费| 久久男人中文字幕资源站| av大全在线观看| 日韩毛片在线看| 性国裸体高清亚洲| 久久精品日产第一区二区三区乱码 | 成av人片一区二区| 91蜜桃视频在线观看| 日韩成人av网| 欧美91看片特黄aaaa| 欧美一区二区三区在线播放| 男女精品网站| 东方伊人免费在线观看| 欧美日韩一区二区三区视频| 爱久久·www| 成人高h视频在线| 68国产成人综合久久精品| 超级砰砰砰97免费观看最新一期 | 在线看日韩欧美| 国产精品亚洲成在人线| 天天干天天操天天干天天操| 国产一区三区三区| 久久免费视频精品| 日韩成人在线网站| 亚洲播播91| 熟妇熟女乱妇乱女网站| 国产成人aaa| 日本中文字幕在线| 中文字幕在线日韩| 国产精品亚洲四区在线观看| 国产一区二区四区| 91一区在线观看| 中文字幕第99页| 久久91亚洲精品中文字幕| 国产成人一二片| 欧洲熟妇精品视频| 亚洲三级在线播放| 黄色片一区二区| 国产精品va在线| 亚洲草久电影| 黄色污在线观看| 欧美色涩在线第一页| 欧美极品少妇videossex| 久久精品人成| 国精品**一区二区三区在线蜜桃| 久久久综合久久久| 一区二区欧美日韩视频| 麻豆一区在线| 欧美黄网站在线观看| 国产精品入口麻豆九色| 亚洲第一页在线观看| 国产精品美女久久久久久免费| 亚洲电影影音先锋| 中文字幕xxx| 91精品国产一区二区三区蜜臀 | 精品国产成人av| 幼a在线观看| 精品亚洲第一| 精品一区二区三区久久| 久久精品国产成人av| 久热国产精品视频| 国产精品一国产精品|