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

AOT漫談: 如何調試C# AOT程序

開發 前端
大家看到命中斷點了也不要高興的太早,VS只適合調試Debug模式發布出來的程序,而實際情況大家更多的是以Release模式發布的,這種模式下用 VS 就不能很好的調試了。

一、背景

1. 講故事

上個月接到了二個C# AOT程序的故障分析,發現如今的C# AOT程序也開始在各個領域開枝散葉了,這是一件非常好的事情,本著對這類程序有一個專業的維修態度,開一個系列好好聊一聊吧,當然我這里是漫談,文章沒有先后順序,先從如何調試開始吧。

二、如何調試AOT程序

1. 一個簡單的例子

現在的VS非常強大,新建模板的時候就有一個 Enable native AOT publish 選項,勾完之后就會自動的在項目的 csproj 中添加配置節 <PublishAot>true</PublishAot> ,截圖如下:

圖片圖片

勾選的好處就是可以在編碼階段就能感知到AOT不允許的東西,方便及時告警,生成完之后參考代碼如下:

static void Main(string[] args)
        {
            var i = 10;
            var j = 20;
            var sum = i + j;
            Console.WriteLine($"{i}+{j}={sum}");
            Console.ReadLine();
        }

代碼有了之后,可以借助dotnet cli的 publish 命令直接發布成nativeaot程序,這里先使用 Debug 模式,這樣就生成好了一個完整的程序,參考如下:

dotnet publish -r win-x64 -c Debug -o D:\testdump

圖片圖片

當然你也可以帶上 PublishAot=true 參數,即:

dotnet publish -r win-x64 -c Debug /p:PublishAot=true -o D:\testdump

2. 使用VS調試

用 VS調試非常簡單,直接將 ConsoleApp1.exe 拖到 VS 中即可,對,就是拖到VS中,然后在源碼的相應位置下個斷點,接下來在 ConsoleApp1.exe 上右鍵 -> Debug -> Start New Instance 即可啟動調試,截圖如下:

圖片圖片

大家看到命中斷點了也不要高興的太早,VS只適合調試Debug模式發布出來的程序,而實際情況大家更多的是以Release模式發布的,這種模式下用 VS 就不能很好的調試了。

為了驗證,我們簡單的修改一下 Debug 改成 Release 模式,參考如下:

PS D:\skyfly\18.20241010\src\Example\ConsoleApp1> dotnet publish -r win-x64 -c Release -o D:\testdump
  正在確定要還原的項目…
  所有項目均是最新的,無法還原。
  ConsoleApp1 -> D:\skyfly\18.20241010\src\Example\ConsoleApp1\bin\Release\net8.0\win-x64\ConsoleApp1.dll
  ConsoleApp1 -> D:\testdump\

有可用的工作負載更新。有關詳細信息,請運行 `dotnet workload list`。

程序運行以來之后,可以看到那些 i,j,sum 都不見了蹤影,無語了,截圖如下:

圖片圖片

3. WinDbg調試

水到絕境是風景,人到絕境是重生。當你絕望的時候一定要知道有WinDbg這種通殺一切之工具的存在,所以這次我們要祭出 WinDbg。

那用 windbg 如何調試呢?非常簡單,直接對 Main 方法下斷點即可,畢竟AOT程序在 ilc 階段就已經編譯成完整的 機器碼,參考命令如下:

bp ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main

這個命令的格式如下:

bp 模塊名!模塊名_命名空間_類名__方法名

圖片圖片

參考匯編代碼如下:

0:000> uf ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main
ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main [D:\skyfly\18.20241010\src\Example\ConsoleApp1\Program.cs @ 9]:
    9 00007ff6`e4836d20 4883ec48        sub     rsp,48h
    9 00007ff6`e4836d24 0f57e4          xorps   xmm4,xmm4
    9 00007ff6`e4836d27 0f29642420      movaps  xmmword ptr [rsp+20h],xmm4
    9 00007ff6`e4836d2c 0f29642430      movaps  xmmword ptr [rsp+30h],xmm4
    9 00007ff6`e4836d31 33c0            xor     eax,eax
    9 00007ff6`e4836d33 4889442440      mov     qword ptr [rsp+40h],rax
   10 00007ff6`e4836d38 488d4c2420      lea     rcx,[rsp+20h]
   10 00007ff6`e4836d3d ba02000000      mov     edx,2
   10 00007ff6`e4836d42 41b803000000    mov     r8d,3
   10 00007ff6`e4836d48 e823f10200      call    ConsoleApp1!S_P_CoreLib_System_Runtime_CompilerServices_DefaultInterpolatedStringHandler___ctor (00007ff6`e4865e70)
   10 00007ff6`e4836d4d 488d4c2420      lea     rcx,[rsp+20h]
   10 00007ff6`e4836d52 ba0a000000      mov     edx,0Ah
   10 00007ff6`e4836d57 e8a48e0500      call    ConsoleApp1!S_P_CoreLib_System_Runtime_CompilerServices_DefaultInterpolatedStringHandler__AppendFormatted<Int32> (00007ff6`e488fc00)
   10 00007ff6`e4836d5c 8b4c2430        mov     ecx,dword ptr [rsp+30h]
   10 00007ff6`e4836d60 8b542440        mov     edx,dword ptr [rsp+40h]
   10 00007ff6`e4836d64 3bca            cmp     ecx,edx
   10 00007ff6`e4836d66 0f87c9000000    ja      ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0x115 (00007ff6`e4836e35)  Branch

ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0x4c [D:\skyfly\18.20241010\src\Example\ConsoleApp1\Program.cs @ 10]:
   10 00007ff6`e4836d6c 488b442438      mov     rax,qword ptr [rsp+38h]
   10 00007ff6`e4836d71 448bc1          mov     r8d,ecx
   10 00007ff6`e4836d74 4a8d0440        lea     rax,[rax+r8*2]
   10 00007ff6`e4836d78 2bd1            sub     edx,ecx
   10 00007ff6`e4836d7a 83fa01          cmp     edx,1
   10 00007ff6`e4836d7d 721d            jb      ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0x7c (00007ff6`e4836d9c)  Branch

ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0x5f [D:\skyfly\18.20241010\src\Example\ConsoleApp1\Program.cs @ 10]:
   10 00007ff6`e4836d7f 488d0d4a180600  lea     rcx,[ConsoleApp1!_Str___206014A4266C2082B9433011FB2991059F972D570A8B3C976E5B2B8DFCFBFC8D (00007ff6`e48985d0)]
   10 00007ff6`e4836d86 4883c10c        add     rcx,0Ch
   10 00007ff6`e4836d8a 0fb711          movzx   edx,word ptr [rcx]
   10 00007ff6`e4836d8d 668910          mov     word ptr [rax],dx
   10 00007ff6`e4836d90 8b4c2430        mov     ecx,dword ptr [rsp+30h]
   10 00007ff6`e4836d94 ffc1            inc     ecx
   10 00007ff6`e4836d96 894c2430        mov     dword ptr [rsp+30h],ecx
   10 00007ff6`e4836d9a eb11            jmp     ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0x8d (00007ff6`e4836dad)  Branch

ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0x7c [D:\skyfly\18.20241010\src\Example\ConsoleApp1\Program.cs @ 10]:
   10 00007ff6`e4836d9c 488d4c2420      lea     rcx,[rsp+20h]
   10 00007ff6`e4836da1 488d1528180600  lea     rdx,[ConsoleApp1!_Str___206014A4266C2082B9433011FB2991059F972D570A8B3C976E5B2B8DFCFBFC8D (00007ff6`e48985d0)]
   10 00007ff6`e4836da8 e893f20200      call    ConsoleApp1!S_P_CoreLib_System_Runtime_CompilerServices_DefaultInterpolatedStringHandler__GrowThenCopyString (00007ff6`e4866040)

ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0x8d [D:\skyfly\18.20241010\src\Example\ConsoleApp1\Program.cs @ 10]:
   10 00007ff6`e4836dad 488d4c2420      lea     rcx,[rsp+20h]
   10 00007ff6`e4836db2 ba14000000      mov     edx,14h
   10 00007ff6`e4836db7 e8448e0500      call    ConsoleApp1!S_P_CoreLib_System_Runtime_CompilerServices_DefaultInterpolatedStringHandler__AppendFormatted<Int32> (00007ff6`e488fc00)
   10 00007ff6`e4836dbc 8b4c2430        mov     ecx,dword ptr [rsp+30h]
   10 00007ff6`e4836dc0 8b542440        mov     edx,dword ptr [rsp+40h]
   10 00007ff6`e4836dc4 3bca            cmp     ecx,edx
   10 00007ff6`e4836dc6 776d            ja      ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0x115 (00007ff6`e4836e35)  Branch

ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0xa8 [D:\skyfly\18.20241010\src\Example\ConsoleApp1\Program.cs @ 10]:
   10 00007ff6`e4836dc8 488b442438      mov     rax,qword ptr [rsp+38h]
   10 00007ff6`e4836dcd 448bc1          mov     r8d,ecx
   10 00007ff6`e4836dd0 4a8d0440        lea     rax,[rax+r8*2]
   10 00007ff6`e4836dd4 2bd1            sub     edx,ecx
   10 00007ff6`e4836dd6 83fa01          cmp     edx,1
   10 00007ff6`e4836dd9 721d            jb      ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0xd8 (00007ff6`e4836df8)  Branch

ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0xbb [D:\skyfly\18.20241010\src\Example\ConsoleApp1\Program.cs @ 10]:
   10 00007ff6`e4836ddb 488d0dee1f0600  lea     rcx,[ConsoleApp1!_Str___E7DAC261E841E53EB65AC8C2A0E56544DF49C46D71E8002D7764F92C66C4C868 (00007ff6`e4898dd0)]
   10 00007ff6`e4836de2 4883c10c        add     rcx,0Ch
   10 00007ff6`e4836de6 0fb711          movzx   edx,word ptr [rcx]
   10 00007ff6`e4836de9 668910          mov     word ptr [rax],dx
   10 00007ff6`e4836dec 8b4c2430        mov     ecx,dword ptr [rsp+30h]
   10 00007ff6`e4836df0 ffc1            inc     ecx
   10 00007ff6`e4836df2 894c2430        mov     dword ptr [rsp+30h],ecx
   10 00007ff6`e4836df6 eb11            jmp     ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0xe9 (00007ff6`e4836e09)  Branch

ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0xd8 [D:\skyfly\18.20241010\src\Example\ConsoleApp1\Program.cs @ 10]:
   10 00007ff6`e4836df8 488d4c2420      lea     rcx,[rsp+20h]
   10 00007ff6`e4836dfd 488d15cc1f0600  lea     rdx,[ConsoleApp1!_Str___E7DAC261E841E53EB65AC8C2A0E56544DF49C46D71E8002D7764F92C66C4C868 (00007ff6`e4898dd0)]
   10 00007ff6`e4836e04 e837f20200      call    ConsoleApp1!S_P_CoreLib_System_Runtime_CompilerServices_DefaultInterpolatedStringHandler__GrowThenCopyString (00007ff6`e4866040)

ConsoleApp1!ConsoleApp1_ConsoleApp1_Program__Main+0xe9 [D:\skyfly\18.20241010\src\Example\ConsoleApp1\Program.cs @ 10]:
   10 00007ff6`e4836e09 488d4c2420      lea     rcx,[rsp+20h]
   10 00007ff6`e4836e0e ba1e000000      mov     edx,1Eh
   10 00007ff6`e4836e13 e8e88d0500      call    ConsoleApp1!S_P_CoreLib_System_Runtime_CompilerServices_DefaultInterpolatedStringHandler__AppendFormatted<Int32> (00007ff6`e488fc00)
   10 00007ff6`e4836e18 488d4c2420      lea     rcx,[rsp+20h]
   10 00007ff6`e4836e1d e8def00200      call    ConsoleApp1!S_P_CoreLib_System_Runtime_CompilerServices_DefaultInterpolatedStringHandler__ToStringAndClear (00007ff6`e4865f00)
   10 00007ff6`e4836e22 488bc8          mov     rcx,rax
   10 00007ff6`e4836e25 e856080000      call    ConsoleApp1!System_Console_System_Console__WriteLine_12 (00007ff6`e4837680)
   13 00007ff6`e4836e2a e831080000      call    ConsoleApp1!System_Console_System_Console__ReadLine (00007ff6`e4837660)
   14 00007ff6`e4836e2f 90              nop
   14 00007ff6`e4836e30 4883c448        add     rsp,48h
   14 00007ff6`e4836e34 c3              ret

仔細觀察上面的匯編代碼,你會發現 i,j 根本就沒有作為棧變量使用,而是直接放到了寄存器中傳給了 AppendFormatted 方法。

圖片圖片

這里要提醒一點就是 DefaultInterpolatedStringHandler 是 C# 中 string 拼接的一種底層優化實現,所以最后代碼被優化成了  Console.WriteLine($"{10}+{20}={30}"); 這樣的句子,這也是 Release 的威力所在。

當然 WinDbg 的功能不限于此,后面還有更多牛叉的功能,在系列文章后面再展開吧。

三:總結

工欲善其事必先利其器,對未知知識的探索必然需要一個好的工具,希望本篇給大家帶來一些靈感吧。

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

2024-10-24 11:08:00

C#AOT泛型

2024-10-14 13:01:33

AOTcpu符號

2023-07-11 00:17:58

.Net8AOTC

2025-04-08 00:09:38

2023-07-14 08:29:55

AOT.Net程序

2023-07-09 23:55:16

C++RoslynILC

2018-11-06 09:31:34

物聯網分析AoT物聯網

2025-04-02 07:40:30

2024-04-16 00:24:54

AndroidApp入口點

2023-09-11 08:40:34

AOTVMP代碼

2011-06-08 10:06:32

C#

2021-11-09 06:01:35

前端JITAOT

2023-09-21 08:46:44

操作系統windows 10內存

2024-03-06 08:52:59

C#Emit代碼

2023-09-04 11:46:09

C#動態代碼

2023-09-15 06:56:01

RC.NET 6Release

2009-08-25 15:58:03

C#跟蹤和調試語句

2009-08-13 17:04:09

C#語言C#程序

2011-06-30 10:28:50

C#開發

2011-06-28 10:19:40

C#開發
點贊
收藏

51CTO技術棧公眾號

都市激情亚洲色图| 国产精品一品二品| 在线亚洲欧美视频| 色综合五月婷婷| 超碰中文在线| 国产欧美视频一区二区| 成人写真视频福利网| 久久精品国产亚洲AV无码男同| 日韩母乳在线| 91精品欧美久久久久久动漫 | 天天影视天天精品| 亚洲国产日韩欧美在线99| 91视频免费版污| 欧美精品videossex少妇| 久久久精品天堂| 国产精品对白刺激久久久| 亚洲s码欧洲m码国产av| 亚洲在线久久| 一区二区欧美亚洲| 成熟妇人a片免费看网站| 欧美成人家庭影院| 欧美丝袜一区二区| 91.com在线| 麻豆av在线导航| 国产欧美一区二区精品忘忧草| 福利精品视频| 国产精品一区二区人人爽| 欧美专区18| 97在线观看免费| 久久久久久国产精品免费播放| 日韩啪啪电影网| 亚洲男子天堂网| 日本丰满少妇裸体自慰| 日韩免费一级| 欧美一区二区在线免费观看| 一区二区三区视频在线观看免费| 亚洲色图官网| 五月天精品一区二区三区| 日韩成人手机在线| av免费在线网站| 亚洲欧美日韩一区二区三区在线观看| 日韩精品一区二区三区色偷偷| 天堂在线观看视频| 成人深夜福利app| 99高清视频有精品视频| 91成年人视频| 久久国产精品99久久久久久老狼| 国产成人综合av| 依依成人综合网| 中日韩男男gay无套| 国内精品久久久久久影视8| 国产在线观看免费av| 亚洲人metart人体| 美女av一区二区| 国产盗摄一区二区三区在线| 性欧美欧美巨大69| 久久av红桃一区二区小说| 国精品人伦一区二区三区蜜桃| 日韩成人综合| 北条麻妃99精品青青久久| 欧美美女性生活视频| 色天天久久综合婷婷女18| 中文字幕日韩精品在线观看| 麻豆视频免费在线播放| 久久精品欧美一区| 欧美成年人视频网站| 国产一二三四在线| 国产一区二区三区成人欧美日韩在线观看| 91国语精品自产拍在线观看性色 | 精品91视频| 18久久久久久| 在线观看亚洲黄色| 九九热在线视频观看这里只有精品| 国产欧美日韩中文| 午夜精品久久久久久久91蜜桃| 岛国一区二区三区| 快播亚洲色图| 五月香视频在线观看| 亚洲天堂免费在线观看视频| 欧美黑人在线观看| 欧美gay视频| 3d成人动漫网站| 国产日韩视频一区| 国产91一区| 久久亚洲精品一区二区| 国产在线成人精品午夜| 香蕉亚洲视频| 91系列在线观看| 婷婷av一区二区三区| 欧美国产精品一区二区| 一区二区三区四区久久| 爱情岛亚洲播放路线| 在线精品亚洲一区二区不卡| 在线观看免费视频污| 丝袜美腿综合| 久热精品在线视频| 中文字幕超碰在线| 麻豆精品视频在线观看视频| 国产精品一码二码三码在线| www 日韩| 亚洲sss视频在线视频| 91人人澡人人爽人人精品| 国产精品流白浆在线观看| 日韩高清不卡av| 成人免费黄色小视频| 狂野欧美一区| 国产精品久久一区二区三区| 9色在线视频网站| 五月婷婷综合网| 在线免费看污网站| 亚洲三级精品| 久久久久久久网站| 中文字幕在线观看第二页| 不卡的看片网站| 一级黄色片播放| 97精品国产综合久久久动漫日韩 | 91久久国产最好的精华液| 欧美一级大片免费看| 国产成人1区| 97涩涩爰在线观看亚洲| 精品国产亚洲一区二区麻豆| 国产精品天干天干在观线| 精品少妇一区二区三区在线| 久久久久久久久成人| 自拍偷拍亚洲精品| 一二三区免费视频| 91网站在线播放| www.av毛片| 亚洲视频国产精品| 久色乳综合思思在线视频| 波多野结衣黄色| 久久久久久久久久久电影| 欧美精品久久久久久久久久久| 激情五月综合婷婷| 久久精品视频导航| 国产又粗又猛又爽又黄视频| 国产精品天美传媒沈樵| 日本888xxxx| 网友自拍一区| 性欧美激情精品| 日韩在线视频第一页| 亚洲综合成人在线视频| 古装做爰无遮挡三级聊斋艳谭| 97久久视频| 91免费欧美精品| 黄视频在线观看网站| 91麻豆精品国产91久久久使用方法| 国产又黄又粗又猛又爽的| 蜜臀久久99精品久久久画质超高清| 日本婷婷久久久久久久久一区二区| 筱崎爱全乳无删减在线观看 | 日本电影全部在线观看网站视频| 欧美系列一区二区| 欧日韩不卡视频| 极品少妇xxxx精品少妇| 亚洲美女自拍偷拍| 日韩一区二区三区色| 欧美贵妇videos办公室| 免费av一级片| 日韩欧美在线观看| 69精品无码成人久久久久久| 免费观看在线色综合| 中文字幕在线中文字幕日亚韩一区| 青青久久精品| 欧美日产国产成人免费图片| 免费看av毛片| 色香蕉久久蜜桃| 超碰97av在线| 国产呦精品一区二区三区网站| 中文字幕在线中文| 久久97精品| 国产精品高潮在线| 美女羞羞视频在线观看| 日韩欧美的一区二区| 国产精品第9页| 国产三级精品三级在线专区| 波多野结衣天堂| 一区二区影院| 免费观看成人在线| 欧美亚洲福利| 午夜精品福利在线观看| 第九色区av在线| 日韩欧美一区在线| 成人在线免费看视频| 中文久久乱码一区二区| 国产精品19p| 免费一级欧美片在线播放| 一区二区三区四区视频在线| av日韩精品| 国产精品91一区| 七七成人影院| 在线视频日本亚洲性| 精品人妻一区二区三区含羞草| 黑人与娇小精品av专区| 亚洲二区在线播放| 久久久美女艺术照精彩视频福利播放| 色噜噜狠狠一区二区三区狼国成人| 亚洲三级观看| 亚洲精品国产精品久久| 果冻天美麻豆一区二区国产| 国产精品亚洲欧美导航| 成年人黄色大片在线| 色青青草原桃花久久综合| 日韩一级在线播放| 精品视频在线免费| 欧美a∨亚洲欧美亚洲| 亚洲桃色在线一区| 亚洲精品成人无码熟妇在线| 国产精品主播直播| av网站在线不卡| 国产女优一区| www.avtt| 亚洲a在线视频| 天堂社区 天堂综合网 天堂资源最新版 | 日本精品在线| 亚洲欧洲第一视频| 色窝窝无码一区二区三区| 欧美日本在线视频| 无码人妻aⅴ一区二区三区有奶水| 一区二区成人在线视频| 5566中文字幕| 国产蜜臀av在线一区二区三区| 少妇一级淫免费观看| 国产高清精品在线| 中文字幕在线视频一区二区三区| 天堂蜜桃一区二区三区| 国产综合av在线| 激情成人亚洲| 福利视频免费在线观看| 欧美在线亚洲| 欧美一级黄色录像片| 国产精品伦理久久久久久| 亚洲v欧美v另类v综合v日韩v| 亚洲人成网站77777在线观看| 国产一区二区三区高清| 91成人短视频| wwwxx欧美| 中文字幕av一区二区三区四区| 亚洲一区二区久久久久久| 国产免费区一区二区三视频免费| 国产欧美一区二区三区久久人妖 | 成人无遮挡免费网站视频在线观看| 中文字幕久久久| av网站在线免费观看| 一区二区三区视频免费| av一本在线| 日韩一区二区精品视频| 久草中文在线| 欧美成年人在线观看| 久草免费在线色站| 久久人91精品久久久久久不卡| 青青在线视频| 欧美精品久久久久久久久久| 成人ssswww在线播放| 欧美亚洲另类激情另类| 电影天堂国产精品| 国产精品视频区| 亚洲一区有码| av免费观看久久| 久草在线综合| 日韩激情久久| 五月婷婷六月综合| 韩国黄色一级大片| 国产一区视频在线观看免费| 亚洲熟妇无码一区二区三区| 9色精品在线| av五月天在线| 国产在线一区二区综合免费视频| 丰满少妇一区二区三区专区| 成人免费av资源| 老牛影视av老牛影视av| 欧美国产日产图区| 国产又黄又爽又无遮挡| 精品电影在线观看| 国产情侣免费视频| 日韩一区二区影院| 日韩一二三四| 精品国产欧美成人夜夜嗨| 青草在线视频| 国产精品入口福利| 中文字幕一区二区三区中文字幕| 蜜桃麻豆91| 午夜欧美在线| 激情综合在线观看| 国产一区二区在线视频| 黄色污在线观看| 中文字幕一区二区三区在线不卡| 久久久精品一区二区涩爱| 日本精品视频一区二区三区| 国产美女www爽爽爽视频| 亚洲精品白浆高清久久久久久| av在线播放网站| 欧美激情在线一区| 成人综合网站| 国产伦精品一区二区三区在线| 成人情趣视频| www插插插无码视频网站| 免费高清不卡av| 中文字幕精品久久久| 国产精品国产三级国产| 国产成人在线观看网站| 91麻豆精品国产91久久久久久久久| 亚洲 欧美 激情 小说 另类| 麻豆成人在线看| 国产精品久久亚洲不卡| 国产一区二区免费电影| 欧美91精品| 免费一级特黄录像| 成人av手机在线观看| 性欧美疯狂猛交69hd| 日本精品免费观看高清观看| 色噜噜在线播放| 久久99久久99精品免观看粉嫩 | 午夜在线播放视频欧美| 五月天丁香花婷婷| 日本一区二区三区久久久久久久久不 | 婷婷开心久久网| 国产喷水吹潮视频www| 一色桃子一区二区| 韩国成人漫画| 久久精品午夜一区二区福利| 欧美日韩精品一本二本三本 | 综合国产在线观看| 欧美aa一级| 国产一区二区在线网站| 国产精品xvideos88| 国产高清999| 国产精品理伦片| 最近日韩免费视频| 国产亚洲精品久久久久久| 亚洲美女久久精品| 精品一区二区不卡| 亚洲国产欧美国产综合一区| 乱码一区二区三区| 玉米视频成人免费看| 99国产精品久久久久99打野战| 色青青草原桃花久久综合| 丁香久久综合| 亚洲a∨一区二区三区| 日本最新不卡在线| 一级黄色片网址| 欧美视频一区二区三区| 啊v在线视频| 国产精品日韩在线| 青青草国产成人a∨下载安卓| 美女网站免费观看视频| 久久久.com| 中国一级特黄视频| 中文字幕亚洲欧美在线| 国产激情欧美| 小说区视频区图片区| 国产一区二区三区四区五区入口| 国产成人久久久久| 日韩午夜精品电影| 国产美女一区视频| 久草精品电影| 日韩精品电影一区亚洲| 国产精品视频在| 91精品国产一区二区人妖| 日本乱理伦在线| 国产区二精品视| 香蕉久久国产| 成年人网站在线观看视频| 在线播放欧美女士性生活| 日本小视频在线免费观看| 九九九九九精品| 日本视频一区二区三区| 亚洲一二三在线观看| 精品久久久久久久久久久久久久久久久 | 亚洲最新视频在线观看| 日韩一卡二卡在线| 国产精品国模在线| 影视亚洲一区二区三区| 国产精品一区二区无码对白| 色综合久久99| 黄色成人影院| 久久国产精品精品国产色婷婷| 青青草成人在线观看| 中文字幕在线观看成人| 亚洲美女自拍视频| 在线播放成人| 1024av视频| 亚洲男人天堂av网| 婷婷亚洲一区二区三区| 国产精品网站视频| 最新国产乱人伦偷精品免费网站| wwwwww日本| 日韩欧美一级特黄在线播放| 国产精品一区二区av影院萌芽| 伊人久久大香线蕉精品| 波多野洁衣一区| 亚洲在线观看av| 777精品视频| 91精品观看| 熟女少妇内射日韩亚洲| 精品久久久久久久一区二区蜜臀| 精品成人免费一区二区在线播放| 黄色成人在线免费观看| 亚洲国产高清不卡| 日本韩国免费观看|