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

記一次 .NET 某醫院門診軟件 卡死分析

開發 前端
去掉了意外的 speech.SpeakAsyncCancelAll();? 語句就搞定了,內部深層邏輯也沒有再探究了,大概率就是意外的 _queueIn 為 0,讓 waveOutReset? 和 waveOutClose 方法沒有匹配出現,造成了卡死現象。

一:背景

1. 講故事

前幾天有位朋友找到我,說他們的軟件在客戶那邊卡死了,讓我幫忙看下是怎么回事?我就讓朋友在程序卡死的時候通過 任務管理器 抓一個 dump 下來,雖然默認抓的是 wow64 ,不過用 soswow64.dll 轉還是可以的,參考命令如下:

.load C:\soft\soswow64\soswow64.dll
    !wow64exts.sw

接下來就可以分析了哈。

二:WinDbg 分析

1. 為什么會卡死

首先用 !t 簡單看一下主線程的 COM Apartment 模式,如果是 STA 那就是窗體程序,比如 WPF,WinForm 之類的,輸出如下:

0:000:x86> !t
ThreadCount:      39
UnstartedThread:  0
BackgroundThread: 12
PendingThread:    0
DeadThread:       26
Hosted Runtime:   no
                                                                         Lock  
       ID OSID ThreadOBJ    State GC Mode     GC Alloc Context  Domain   Count Apt Exception
   0    1 1928 01aee0b0   2026020 Preemptive  041D496C:00000000 01ae88a8 2     STA 
   ...

既然是窗體程序那就看主線程吧,使用 ~0s;!clrstack 命令。

0:000:x86> !clrstack
OS Thread Id: 0x1928 (0)
Child SP       IP Call Site
0177dff8 0167e1f8 [HelperMethodFrame_1OBJ: 0177dff8] System.Threading.SynchronizationContext.WaitHelper(IntPtr[], Boolean, Int32)
0177e29c 6a6fc693 System.Windows.Threading.DispatcherSynchronizationContext.Wait(IntPtr[], Boolean, Int32)
0177e2b0 71e36d54 System.Threading.SynchronizationContext.InvokeWaitMethodHelper(System.Threading.SynchronizationContext, IntPtr[], Boolean, Int32) [f:\dd\ndp\clr\src\BCL\system\threading\synchronizationcontext.cs @ 349]
0177e4d8 73220076 [GCFrame: 0177e4d8] 
0177e5f8 73220076 [GCFrame: 0177e5f8] 
0177e6d8 73220076 [GCFrame: 0177e6d8] 
0177e6f4 73220076 [HelperMethodFrame_1OBJ: 0177e6f4] System.Threading.Monitor.ReliableEnter(System.Object, Boolean ByRef)
0177e770 18078b93 System.Speech.Internal.Synthesis.AudioDeviceOut.Abort()
0177e79c 17270698 System.Speech.Internal.Synthesis.VoiceSynthesis.Abort()
0177e7e8 065ec76b System.Speech.Synthesis.SpeechSynthesizer.SpeakAsyncCancelAll()
0177e7f0 065ec728 xxx.xxx.Speek(System.String)
...

從卦中看是一個 語音模塊,還有 Speek 功能,挺有意思。。。還 Speek 啥呢?可以用 !mdso 看一下。

0:000:x86> !mdso
Thread 0:
Location          Object            Type
------------------------------------------------------------
0177e060  04176eb8  System.IntPtr[]
...
0177e7f8  03be9504  System.String  "請先登錄驗證身份"

哈哈,上面只是花絮,繼續看線程棧會發現代碼卡在 Monitor.ReliableEnter 上,也就是等待 lock 鎖,接下來用 kb 把 鎖對象提取出來,即 clr!JITutil_MonReliableEnter 方法的第一個參數 03be11b4,輸出如下:

0:000:x86> kb
...
17 0177e768 18078b93     03be11b4 00000000 00000000 clr!JITutil_MonReliableEnter+0xb5
18 0177e794 17270698     0177e7bc 73252799 00000000 0x18078b93
19 0177e7e0 065ec76b     0177e808 065ec728 00000000 0x17270698
1a 0177e7e8 065ec728     00000000 03a0b318 03be9504 0x65ec76b
1b 0177e808 1727e09f     00000000 03be0920 04158b98 0x65ec728
1c 0177e824 69181324     04175c04 041199c0 00000001 0x1727e09f
...

0:000:x86> !do 03be11b4
Name:        System.Object
MethodTable: 71f200f4
EEClass:     71a715b0
Size:        12(0xc) bytes
File:        C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
Object
Fields:
None

有了這個對象就可以用 !syncblk 命令觀察同步塊表,到底是哪個線程在持有不釋放?

0:000:x86> !syncblk
Index         SyncBlock MonitorHeld Recursion Owning Thread Info          SyncBlock Owner
   96 11ac3ee0            3         1 11af0f28 35d4  13   03be11b4 System.Object
-----------------------------
Total           931
CCW             39
RCW             19
ComClassFactory 2
Free            802

0:000:x86> ~13s;!clrstack
ntdll_76fc0000!NtWaitForSingleObject+0xc:
7703159c c20c00          ret     0Ch
OS Thread Id: 0x35d4 (13)
Child SP       IP Call Site
17f8f23c 0000002b [InlinedCallFrame: 17f8f23c] 
17f8f238 1adf3269 DomainBoundILStubClass.IL_STUB_PInvoke(IntPtr)
17f8f23c 1adf2e82 [InlinedCallFrame: 17f8f23c] System.Speech.Internal.Synthesis.SafeNativeMethods.waveOutClose(IntPtr)
17f8f26c 1adf2e82 System.Speech.Internal.Synthesis.AudioDeviceOut.End()
17f8f298 187a5cd6 System.Speech.Internal.Synthesis.VoiceSynthesis.SpeakText(System.Speech.Internal.Synthesis.SpeakInfo, System.Speech.Synthesis.Prompt, System.Collections.Generic.List`1<System.Speech.Internal.Synthesis.LexiconEntry>)
17f8f304 17271669 System.Speech.Internal.Synthesis.VoiceSynthesis.ThreadProc()
17f8f3b8 71e3710d System.Threading.ThreadHelper.ThreadStart_Context(System.Object) [f:\dd\ndp\clr\src\BCL\system\threading\thread.cs @ 74]
17f8f3c4 71e640c5 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) [f:\dd\ndp\clr\src\BCL\system\threading\executioncontext.cs @ 954]
17f8f430 71e63fd6 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) [f:\dd\ndp\clr\src\BCL\system\threading\executioncontext.cs @ 902]
17f8f444 71e63f91 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) [f:\dd\ndp\clr\src\BCL\system\threading\executioncontext.cs @ 891]
17f8f45c 71e37068 System.Threading.ThreadHelper.ThreadStart() [f:\dd\ndp\clr\src\BCL\system\threading\thread.cs @ 111]
17f8f5a0 73220076 [GCFrame: 17f8f5a0] 
17f8f784 73220076 [DebuggerU2MCatchHandlerFrame: 17f8f784] 


0:013:x86> !t
  ...
  13   14 35d4 11af0f28     2b220 Preemptive  00000000:00000000 01ae88a8 2     MTA 
  ...

從卦中信息看:13號線程持有了 lock 鎖,并且它非線程池線程,而是通過 new Thread 出來的,從線程棧看都是sdk函數,綜合這些信息,應該是 VoiceSynthesis 創建出來的后臺線程,下面的圖也可以佐證。

圖片

接下來繼續看,從線程棧頂上可以觀察到最后卡在了 System.Speech.Internal.Synthesis.SafeNativeMethods.waveOutClose 方法處,逆向之后的代碼如下:

// System.Speech.Internal.Synthesis.AudioDeviceOut
    internal override void End()
    {
        if (!_deviceOpen)
        {
            throw new InvalidOperationException();
        }
        lock (_noWriteOutLock)
        {
            _deviceOpen = false;
            CheckForAbort();
            if (_queueIn.Count != 0)
            {
                SafeNativeMethods.waveOutReset(_hwo);
            }
            MMSYSERR mMSYSERR = SafeNativeMethods.waveOutClose(_hwo);
        }
    }

由于這是 Windows 的 VoiceSynthesis 模塊封裝底層函數,經過千錘百煉,理論上出問題的概率會非常小,除非上層有不合理的調用,這種概率會大一些。

2. 是上層不合理的調用嗎

這一塊我也沒玩過,網上搜一下 waveOutReset , waveOutClose ,看下有沒有同病相憐的人,結果網上一搜一堆,比如下面這樣:

圖片

圖片

不管怎么說,這一塊如果處理不好容易出現死鎖和卡死的情況,那是不是正如圖中所說 waveOutReset 和 waveOutClose 沒有匹配造成的呢?

這就取決于代碼中的 _queueIn 集合,可以觀察這兩個函數的匯編代碼提取出這個變量。

0:013:x86> !U /d 1adf2e82
Normal JIT generated code
System.Speech.Internal.Synthesis.AudioDeviceOut.End()
...
1adf2e30 8bf1            mov     esi,ecx
...
1adf2e69 8b4608          mov     eax,dword ptr [esi+8]
1adf2e6c 83780c00        cmp     dword ptr [eax+0Ch],0
1adf2e70 7408            je      1adf2e7a
...

0:013:x86> !U /d 187a5cd6
Normal JIT generated code
System.Speech.Internal.Synthesis.VoiceSynthesis.SpeakText(System.Speech.Internal.Synthesis.SpeakInfo, System.Speech.Synthesis.Prompt, System.Collections.Generic.List`1<System.Speech.Internal.Synthesis.LexiconEntry>)
...
187a5cc8 8b45d0          mov     eax,dword ptr [ebp-30h]
187a5ccb 8b486c          mov     ecx,dword ptr [eax+6Ch]
187a5cd3 ff5014          call    dword ptr [eax+14h]
>>> 187a5cd6 58              pop     eax
...


0:013:x86> kb 10
 # ChildEBP RetAddr      Args to Child              
...
08 17f8f264 1adf2e82     03be11b4 00000001 00000000 0x1adf3269
09 17f8f290 187a5cd6     187a5e16 03be0d24 043f3520 0x1adf2e82
0a 17f8f2f4 17271669     040efa14 040ef9a4 732515d8 0x187a5cd6
0b 17f8f3b0 71e3710d     03ff3e98 17f8f420 71e640c5 0x17271669
...

仔細觀察上面的匯編代碼:eax 來自于 esi,esi 來自于 ecx,ecx 最終來自于父函數中的 ebp-30h 的位置,串聯起來的命令就是 !do poi(poi(poi(17f8f2f4-30)+6c)+0x8) ,接下來我們 do 一下。

0:000:x86> !do poi(poi(poi(17f8f2f4-30)+6c)+0x8)
Name:        System.Collections.Generic.List`1[[System.Speech.Internal.Synthesis.AudioDeviceOut+InItem, System.Speech]]
MethodTable: 16cf20ec
EEClass:     71af6f8c
Size:        24(0x18) bytes
File:        C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
Fields:
      MT    Field   Offset                 Type VT     Attr    Value Name
71f2f320  4001891        4     System.__Canon[]  0 instance 03c74538 _items
71f21bb4  4001892        c         System.Int32  1 instance        0 _size
71f21bb4  4001893       10         System.Int32  1 instance     1900 _version
71f200f4  4001894        8        System.Object  0 instance 00000000 _syncRoot
71f2f320  4001895        4     System.__Canon[]  0   static  <no information>

可以看到此時的 _size=0 ,有可能就是因為上層不合理調用導致這里的 _queueIn 意外為 0 ,最終引發的卡死現象。

3. 真相大白

一時之間也找不到上層哪里有不合理的調用,接下來的思路還是自己研讀主線程和13號線程的調用棧,最后發現一個可疑的現象,截圖如下:

圖片

通過仔細研讀底層代碼,Speek 會將消息丟到底層的queue隊列中,后臺線程會提取處理,這里的 SpeakAsyncCancelAll 是完全沒必要的。

有了這個消息,就讓朋友把這個函數去掉觀察下試試,據朋友反饋說沒有問題了。

圖片

三:總結

這個案例中去掉了意外的 speech.SpeakAsyncCancelAll(); 語句就搞定了,內部深層邏輯也沒有再探究了,大概率就是意外的 _queueIn 為 0,讓 waveOutReset 和 waveOutClose 方法沒有匹配出現,造成了卡死現象。

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

2023-09-27 07:23:10

.NET監控軟件

2025-09-02 01:35:00

.NET光學定位軟件

2024-05-20 09:39:02

.NETurl線程池

2022-10-13 18:40:05

.NETOA后端

2022-01-17 21:28:36

管理系統.NET

2024-07-01 13:00:24

.NET網絡邊緣計算

2024-11-29 10:06:59

2024-09-14 10:28:56

.NET卡死程序

2023-07-06 10:11:38

.NET模式dump

2024-12-27 13:31:18

.NETdump調試

2024-06-06 10:51:15

自動化系統推測

2024-05-28 10:18:30

WPF程序數據

2024-05-31 12:56:06

.NET代碼方法

2023-10-07 13:28:53

.NET軟件賬本

2022-10-09 10:47:37

NET視覺軟件

2023-06-26 00:12:46

2024-03-28 12:56:36

2023-04-06 10:52:18

2024-07-12 11:20:34

.NET崩潰視覺程序

2024-03-26 00:44:53

.NETCIM系統
點贊
收藏

51CTO技術棧公眾號

久久国产精品99久久久久久丝袜| 欧美日韩免费在线视频| 国产精品毛片一区视频| 欧美色图亚洲视频| 精品3atv在线视频| 国产午夜精品美女毛片视频| 国产精品狼人色视频一区| 亚洲一级片在线播放| 欧美午夜三级| 亚洲影院免费观看| 九色综合日本| 在线观看黄色国产| 天天综合网网欲色| 精品免费一区二区三区| 91视频最新入口| 成人性生交大片免费看午夜 | 伊人久久大香线蕉精品| 国产强伦人妻毛片| 激情av一区| www.99久久热国产日韩欧美.com| 人妖粗暴刺激videos呻吟| 欧美成人家庭影院| 色综合久久88色综合天天6| 久久免费一级片| 1024视频在线| 久久久高清一区二区三区| 精品制服美女丁香| 色偷偷久久人人79超碰人人澡| 亚洲国产欧洲综合997久久 | 色婷婷色综合| 日韩一区二区三区视频在线| 少妇精品在线| 国产欧美在线观看一区| 国产精品一 二 三| 国产又粗又大又黄| 久久一区亚洲| 亚洲黄色在线视频| 日本精品国语自产拍在线观看| 亚洲国产剧情在线观看| 看电视剧不卡顿的网站| 日韩av手机在线| 日韩精品一区二区三| 欧美久久99| 超碰97人人做人人爱少妇| 一级黄色毛毛片| 欧美欧美黄在线二区| 日韩成人中文字幕| 小毛片在线观看| 999国产精品一区| 日韩一区二区精品在线观看| 日韩成人av免费| 24小时成人在线视频| 4438亚洲最大| 午夜影院免费版| 国产精品成人**免费视频| 欧美日韩二区三区| xxxx在线免费观看| 福利一区三区| 日韩欧美在线影院| 中文字幕亚洲日本| 成人午夜大片| 日韩精品在线视频| 一级国产黄色片| 亚洲美女久久| 国产亚洲精品成人av久久ww| 免费一级做a爰片久久毛片潮| 国产精品最新| 中文字幕av一区中文字幕天堂| 日本一道本视频| 日韩在线不卡| 久久aⅴ乱码一区二区三区| 中文字幕国产亚洲2019| 午夜三级在线观看| 国产综合亚洲精品一区二| 久久久久久久爱| 久草视频一区二区| 蜜臀av性久久久久蜜臀av麻豆| 国产中文日韩欧美| 性生交生活影碟片| 99精品国产99久久久久久白柏| 欧美另类视频在线| 麻豆视频在线观看免费| 一区二区三区免费在线观看| 国产中文字幕视频在线观看| 欧美18—19sex性hd| 欧美日韩国产一区二区三区地区| 日本网站在线看| 国产精品对白| 日韩中文av在线| 久久精品免费av| 日韩1区2区3区| 成人18视频| 国产精品一区二区婷婷| 一区二区视频免费在线观看| aa在线免费观看| 国产精久久一区二区| 国产视频精品xxxx| 国产一二三区精品| 久久精品天堂| 国产成人看片| 91caoporn在线| 亚洲v中文字幕| 九九精品久久久| 日韩三级av| 欧美精品一区二区三区国产精品| 在线观看日本视频| 国产精品资源在线| 亚洲国产精品123| 国产直播在线| 欧美一区二区三区成人| 精品国产av无码| 成人高潮成人免费观看| 亚洲欧美大片| 91网免费观看| aaa在线免费观看| 黑人与娇小精品av专区| 日本少妇一区二区三区| 秋霞欧美视频| 91成人在线播放| 国产ts变态重口人妖hd| 国产精品三级av| 国产91在线视频观看| 国产精品va视频| 欧美视频在线一区二区三区| 国产成人精品福利一区二区三区 | 精品av久久久久电影| 国产精品av电影| 日韩一级片免费看| 亚洲欧美一区二区久久| 超碰在线人人爱| 五月国产精品| 性视频1819p久久| www日本视频| 亚洲男人的天堂在线观看| 99视频在线视频| 国产一区二区观看| 日韩av成人在线观看| 亚洲欧洲成人在线| 欧美日韩激情网| 成人在线电影网站| 亚洲福利一区| 色诱亚洲精品久久久久久| 亚洲色图欧美日韩| 国产在线欧美| 国产精品v欧美精品v日韩| 久久久久久久久久综合| 蜜桃视频在线观看免费视频| 欧美午夜免费电影| 亚洲无人区码一码二码三码的含义| 亚洲欧美日本日韩| 美女被啪啪一区二区| 华人av在线| 日韩理论片久久| 成人免费视频国产免费| 久久久久成人黄色影片| www.亚洲天堂网| 久久不见久久见中文字幕免费| 欧美亚洲激情视频| 欧美视频综合| 在线观看免费成人| 黄色裸体一级片| 蜜桃av一区二区| 亚洲图片都市激情| 国产精品久久久久久久久久久久久久久| 久久精品国产2020观看福利| 国产欧美久久久| 艳妇臀荡乳欲伦亚洲一区| aaa黄色大片| 99热免费精品| 日韩欧美亚洲日产国| 国产精品久久乐| 不卡av电影在线观看| 国产 欧美 自拍| 日韩欧美黄色动漫| 在线免费看视频| 国产久卡久卡久卡久卡视频精品| 国产青草视频在线观看| 美女少妇全过程你懂的久久 | 永久免费网站视频在线观看| 98视频精品全部国产| 欧美一级免费视频| www日韩tube| 欧美一区二区三区在线视频| 91精品国产高潮对白| 久久五月婷婷丁香社区| 粉色视频免费看| 亚洲精品影院在线观看| 亚洲精品久久区二区三区蜜桃臀| 6080成人| 成人免费毛片app| 伊人久久大香线蕉精品| 免费福利视频一区| 国产噜噜噜噜噜久久久久久久久| 三级网站视频在在线播放| 亚洲区一区二区| 国产成人av免费看| 国产综合久久久久久久久久久久| 精品免费久久久久久久| 网曝91综合精品门事件在线| 国产欧美精品日韩| av在线理伦电影| 在线观看日韩视频| 欧美熟女一区二区| 欧美精品一卡两卡| 久久亚洲精华国产精华液| 97超碰免费观看| 欧美黄色影院| 91麻豆国产语对白在线观看| 欧美gv在线| 欧美成人精品激情在线观看| 激情福利在线| 亚洲黄色av网站| 日韩中字在线观看| 久久99成人| 国产成人精品电影久久久| 欧美xxxx免费虐| 久久精品电影网| wwwxxx在线观看| 亚洲精品视频在线观看视频| 亚洲国产精彩视频| 欧美午夜激情在线| 日本熟妇成熟毛茸茸| 综合激情成人伊人| 人妻少妇无码精品视频区| 成人国产精品免费观看视频| 国产永久免费网站| 日本aⅴ免费视频一区二区三区| 天天夜碰日日摸日日澡性色av| 亚洲九九在线| 亚洲自拍三区| 日韩欧美精品一区| 先锋在线资源一区二区三区| 亚洲最大在线| 蜜桃日韩视频| 亚洲精品亚洲人成在线| 精品无人区一区二区三区 | 亚洲xxxx做受欧美| 色综合久久久| 国产精品啪视频| 日韩一区二区三区免费| 欧洲美女免费图片一区| 国产精品电影| 69久久夜色精品国产7777| 国产亚av手机在线观看| 欧美精品久久久久a| 色呦呦网站在线观看| 九九热这里只有在线精品视| 成视频免费观看在线看| 久久综合久久八八| 91精选在线| 久久久久免费视频| 丰乳肥臀在线| 91成人天堂久久成人| 国产免费不卡| 国产精品福利网| 免费视频成人| 亚洲www视频| 亚洲日本va| 精品一区日韩成人| 中文字幕伦av一区二区邻居| 日韩中文字幕一区| 色综合色综合| 成人一区二区av| 亚洲视频综合| 国产亚洲天堂网| 日本亚洲免费观看| 午夜视频在线网站| 国产精品影视在线观看| 肉丝美足丝袜一区二区三区四| 国产v综合v亚洲欧| 亚洲一区二区三区四区五区六区| 久久综合色婷婷| 欧美亚洲色综久久精品国产| 亚洲视频一区在线| 精品无码av在线| 欧美视频在线看| 伊人免费在线观看| 欧美成人aa大片| 亚洲欧美一区二区三| 中文字幕精品av| a视频在线观看免费| 97成人在线视频| 日本精品不卡| 91传媒视频免费| 亚洲婷婷伊人| 亚洲欧洲精品在线 | 动漫av一区| 精品一卡二卡三卡四卡日本乱码 | xnxx国产精品| 伊人在线视频观看| 亚洲成人精品一区二区| 日韩欧美在线观看免费| 3d动漫精品啪啪1区2区免费| 天堂中文在线观看视频| 日韩在线视频线视频免费网站| 中文字幕人成一区| 中文字幕一区二区三区在线视频| 国产原创中文在线观看| 麻豆精品在线观看| 亚洲激情 欧美| 大陆精大陆国产国语精品| 欧美大片在线看| av成人免费| 国内精品久久国产| 国产韩日影视精品| jizzjizzxxxx| 成人激情动漫在线观看| 亚洲波多野结衣| 在线观看不卡一区| 亚洲女人18毛片水真多| 日韩中文字幕视频| 欧美羞羞视频| 国产一区不卡在线观看| 亚洲精品一区二区妖精| 国产 porn| 久久亚洲综合av| 国产无码精品在线观看| 在线电影国产精品| 国产精品四虎| 成人午夜电影久久影院| 在线免费观看a级片| 亚洲婷婷综合色高清在线| 亚洲 国产 日韩 欧美| 亚洲精品美女在线| 国产精品探花在线| 2020国产精品久久精品不卡| 国产电影一区二区在线观看| 黄色三级视频在线| 免费视频观看成人| 2019亚洲男人天堂| 国产亚洲精品美女久久| 五月天激情图片| 韩国av一区二区三区四区| 精品熟妇无码av免费久久| 色国产综合视频| 裸体xxxx视频在线| 国产999精品久久久| 校园春色另类视频| 国产二区视频在线播放| 成+人+亚洲+综合天堂| 日本少妇xxxx动漫| 欧美精品一区二区三区蜜臀| 在线观看三级视频| 亚洲xxxxx性| 欧美国产高清| 黑人玩弄人妻一区二区三区| 亚洲午夜在线观看视频在线| 男人天堂av网| 97视频在线免费观看| 欧美电影在线观看完整版| 国产夫妻自拍一区| 99视频热这里只有精品免费| 五月天激情国产综合婷婷婷| 亚洲色无码播放| jizz亚洲女人高潮大叫| 亚洲自拍偷拍二区| 国产一区欧美一区| 国产亚洲精品久久久久久打不开| 精品国内二区三区| 毛片在线网站| 亚洲成人第一| 韩国v欧美v亚洲v日本v| 欧美日韩一级大片| 日韩精品免费在线视频观看| 成人免费网站视频| 日韩色妇久久av| 国产精品影音先锋| 亚洲男人第一av| 国产亚洲精品久久久久久| 国产原创一区| 激情六月天婷婷| 91亚洲大成网污www| 国模私拍一区二区| 久久99精品久久久久久琪琪| 欧美日韩大片免费观看| 亚洲精品中文字幕无码蜜桃| 国产精品福利一区二区三区| 亚洲av永久无码国产精品久久| 欧美一级片免费在线| 色综合久久一区二区三区| 97中文字幕在线观看| 色美美综合视频| 菠萝菠萝蜜在线观看| 久久精品中文字幕一区二区三区| 理论片日本一区| 精品成人久久久| 日韩亚洲成人av在线| 欧美亚洲色图校园春色| 一区二区三区黄色| 深夜福利视频一区二区| 中文精品一区二区三区| 波多野结衣中文一区| 亚洲天堂网在线视频| 韩国福利视频一区| 手机亚洲手机国产手机日韩| 亚洲午夜久久久久久久久| 欧美视频在线不卡| 黄色漫画在线免费看| 在线免费观看一区二区三区| 91在线视频观看|