久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

捕獲與解析Android NativeCrash

瀏覽:144日期:2022-09-17 18:46:22
目錄一、NE 簡介1.1、so 組成1.2、查看 so 狀態1.3、獲取 strip 和未被 strip 的 so二、NE 捕獲與解析2.1、logcat捕獲2.2、通過DropBox日志解析--適用于系統應用2.3、通過BreakPad捕獲解析--適用于所有應用2.3.1、BreakPad的實現功能2.3.2、BreakPad的捕獲原理2.3.3、解析dump文件2.3.4、獲取崩潰堆棧三、so符號表的提取3.1、提取 so 的符號表3.2、符號表分析3.2.1、直接分析3.2.2、工具解析3.2.3、偏移位置簡析四、總結一、NE 簡介

NE全稱 NativeException,就是C或者C++運行過程中產生的錯誤,NE不同于普通的 Java 錯誤,普通的logcat無法直接還原成可閱讀的堆棧,一般沒有源碼也無法調試。

所以日常應用層的工程師,即使我們內部有云診斷的日志,一般也會忽略NE的錯誤,那么遇到這些問題,作為應用層、對C++不甚了解的工程師能否解決還原堆棧,能否快速定位或者解決NE的問題呢?

下面將著重介紹:

1.1、so 組成

我們先了解一下 so 的組成,一個完整的 so 由C代碼加一些 debug 信息組成,這些debug信息會記錄 so 中所有方法的對照表,就是方法名和其偏移地址的對應表,也叫做符號表,這種 so 也叫做未 strip 的,通常體積會比較大。

通常release的 so 都是需要經過一個strip操作的,這樣strip之后的 so 中的debug信息會被剝離,整個 so 的體積也會縮小。

如下圖所示:

捕獲與解析Android NativeCrash

如下可以看到strip之前和之后的大小對比。

捕獲與解析Android NativeCrash

如果對 NE 或者 so 不了解的,可以簡單將這個debug信息理解為Java代碼混淆中的mapping文件,只有擁有這個mapping文件才能進行堆棧分析。

如果堆棧信息丟了,基本上堆棧無法還原,問題也無法解決。

所以,這些debug信息尤為重要,是我們分析NE問題的關鍵信息,那么我們在編譯 so 時候務必保留一份未被strip的so 或者剝離后的符號表信息,以供后面問題分析,并且每次編譯的so 都需要保存,一旦產生代碼修改重新編譯,那么修改前后的符號表信息會無法對應,也無法進行分析。

1.2、查看 so 狀態

事實上,也可以通過命令行來查看 so 的狀態,Mac下使用 file 命令即可,在命令返回值里面可以查看到so的一些基本信息。

如下圖所示,stripped代表是沒有debug信息的so,with debug_info, not stripped代表攜帶debug信息的so。

file libbreakpad-core-s.so

libbreakpad-core-s.so: *******, BuildID[sha1]=54ad86d708f4dc0926ad220b098d2a9e71da235a, stripped

file libbreakpad-core.so

libbreakpad-core.so: ******, BuildID[sha1]=54ad86d708f4dc0926ad220b098d2a9e71da235a, with debug_info, not stripped

如果你是 Windows系統的話,那么我勸你裝一個 Linux子系統,然后在 Linux執行同樣的命令,同樣也可以得到該信息。

接下來看下我們如何獲取兩種狀態下的so。

1.3、獲取 strip 和未被 strip 的 so

目前Android Studio無論是使用mk或者Cmake編譯的方式都會同時輸出strip和未strip的so,如下圖是Cmake編譯so產生的兩個對應的so。

strip之前的so路徑:build/intermediates/transforms/mergeJniLibs

strip之后的so路徑:build/intermediates/transforms/stripDebugSymbol

捕獲與解析Android NativeCrash

另外也可以通過Android SDK提供的工具aarch64-linux-android-strip手動進行strip,aarch64-linux-android-strip這個工具位于/Users/njvivo/Library/Android/sdk/ndk/21.3.6528147/toolchains目錄下。

這個工具有多種版本,主要針對不同的手機CPU架構,如果不知道手機的CPU架構,可以連接手機使用以下命令查看:

adb shell cat /proc/cpuinfo

Processor   : AArch64 Processor rev 12 (aarch64)

如上圖可以看到我的手機CPU用的是aarch64,所以使用aarch64對應的工具aarch64-linux-android-strip,由于NDK提供了很多工具,后續都依照此原則使用即可:

aarch64架構

/Users/njvivo/Library/Android/sdk/ndk/21.3.6528147/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-android-strip

arm架構

/Users/njvivo/Library/Android/sdk/ndk/21.3.6528147/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-android-strip

使用如下命令可以直接將debug的so進行strip

aarch64-linux-android-strip --strip-all libbreakpad-core.so

使用Cmake進行編譯的時候,可以增加如下命令,可以直接編譯出strip的so

#set(CMAKE_C_FLAGS_RELEASE '${CMAKE_C_FLAGS_RELEASE} -s')

#set(CMAKE_CXX_FLAGS_RELEASE '${CMAKE_CXX_FLAGS_RELEASE} -s')

使用mk文件進行編譯的時候,可以增加如下命令,也可以直接編譯出strip的so

-fvisibility=hidden

二、NE 捕獲與解析

NE解析顧名思議就是堆棧解析,當然所有的前提就是需要保存一份帶符號表、也就是未被strip的so,如果你只有strip之后的so,那就無能為力了,堆?;緹o法還原了。

一般有以下三種方式可以捕獲和還原堆棧。

2.1、logcat捕獲

顧名思義,就是通過logcat進行捕獲,我們通過Android Studio打開logcat,制造一個NE,只能看到很多類似#00 pc 00000000000161a0的符號,并沒有一個可以直接閱讀的日志,我們想通過logcat直接輸出一份可以直接閱讀的log。

可以使用Android/SDK/NDK下面提供的一個工具ndk-stack,它可以直接將NE輸出的log解析為可閱讀的日志。

ndk-stack一般是位于ndk的工具下面,Mac下的地址為

/Users/XXXX/Library/Android/sdk/ndk/21.3.6528147/ndk-stack

然后在該目錄下執行控制臺命令,或者在 Android Studio的terminal中執行也可

adb shell logcat | androidsdk絕對路徑/ndk-stack -sym so所在目錄

如此控制臺在應用發生NE的時候便會輸出如下日志,由日志可以看出,崩潰對應的so以及對應的方法名,如果有c的源碼,那么就很容易定位問題。

promote:~ njvivo$ adb shell logcat | ndk-stack -sym libbreakpad-core.so

********** Crash dump: **********

Build fingerprint: ’vivo/PD1809/PD1809:8.1.0/OPM1.171019.026/compil04252203:user/release-keys’

#00 0x00000000000161a0 /data/app/com.android.necase-lEp0warh8FqicyY1YqGXXA==/lib/arm64/libbreakpad-core.so (Java_com_online_breakpad_BreakpadInit_nUpdateLaunchInfo+16)

#01 0x00000000000090cc /data/app/com.android.necase-lEp0warh8FqicyY1YqGXXA==/oat/arm64/base.odex (offset 0x9000)

Crash dump is completed

其實ndk-stack這個工具原理就是內部集成利用了addr2line來實時解析堆棧并且顯示在控制臺中。

看到這里有的小伙伴就覺得那這個不是很簡單,但是實際的崩潰場景一是不容易復現,二是用戶的場景有時候很難模擬,那么線上的NE崩潰又該如何監測和定位呢,有兩種方式。

2.2、通過DropBox日志解析--適用于系統應用

這個很簡單,DropBox會記錄JE,NE,ANR的各種日志,只需要將DropBox下面的日志傳上來即可進行分析解決,下面貼上一份日志示例。

捕獲與解析Android NativeCrash

解析方案1:

借助上述的ndk-stack工具,可以直接將DropBox下面的日志解析成堆棧,從中可以看出,崩潰在breakpad.cpp第111行的Crash()方法中。

ndk-stack -sym /Users/njvivo/Desktop/NE -dump data_app_native_crash@1605531663898.txt

********** Crash dump: **********

Build fingerprint: ’vivo/PD1809/PD1809:8.1.0/OPM1.171019.026/compil04252203:user/release-keys’

#00 0x00000000000161a0 /data/app/com.android.necase-lEp0warh8FqicyY1YqGXXA==/lib/arm64/libbreakpad-core.so (Java_com_online_breakpad_BreakpadInit_nUpdateLaunchInfo+16)

Crash()

/Users/njvivo/Documents/project/Breakpad/breakpad-build/src/main/cpp/breakpad.cpp:111:8

Java_com_online_breakpad_BreakpadInit_nUpdateLaunchInfo

/Users/njvivo/Documents/project/Breakpad/breakpad-build/src/main/cpp/breakpad.cpp:122:0

#01 0x00000000000090cc /data/app/com.android.necase-lEp0warh8FqicyY1YqGXXA==/oat/arm64/base.odex (offset 0x9000)

Crash dump is completed

解析方案2:

還是利用Android/SDK/NDK提供的工具linux-android-addr2line,這個工具位于/Users/njvivo/Library/Android/sdk/ndk目錄下,有兩個版本。

aarch64架構

/Users/njvivo/Library/Android/sdk/ndk/21.3.6528147/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-android-addr2line

arm架構

/Users/njvivo/Library/Android/sdk/ndk/21.3.6528147/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-addr2line

命令使用方法如下,結合未被strip的so以及日志里面出現的堆棧符號00000000000161a0,同樣可以解析出崩潰地址和方法

aarch64-linux-android-addr2line -f -C -e libbreakpad-core.so 00000000000161a0

Crash()

/Users/njvivo/Documents/project/Breakpad/breakpad-build/src/main/cpp/breakpad.cpp:111

基于以上,看似也很簡單,但是有一個致命的問題就是DropBox只有系統應用能訪問,非系統應用根本拿不到日志,那么,非系統應用該怎么辦呢?

2.3、通過BreakPad捕獲解析--適用于所有應用

非系統應用可以通過google提供的開源工具BreakPad進行監測分析,CrashSDK也是采用的此種方式,可以實時監聽到NE的發生,并且記錄相關的文件, 從而可以將崩潰和相應的應用崩潰時的啟動、場景等結合起來上報。

下面簡單介紹一下BreakPad的使用方式。

2.3.1、BreakPad的實現功能

BreakPad主要提供兩個個功能,NE的監聽和回調,生成minidump文件,也就是dmp結尾的文件,另外提供兩個工具,符號表工具和堆棧還原工具。

捕獲與解析Android NativeCrash

符號表工具:用于從so中提取出debug信息,獲取到堆棧對應的符號表。 堆棧還原工具:用于將BreakPad生成的dump文件還原成符號,也就是堆棧偏移值。

這兩個工具會在編譯BreakPad源碼的時候產生。

編譯完之后會產生minidump_stackwalk工具,有些同學不想編譯的話,Android Studio本身也提供了這個工具。

這個minidump_stackwalk程序在Android Studio的目錄下面也存在,可以拿出來直接使用,如果不想編譯的話,直接到該目錄下面取即可,Mac路徑為:

/Applications/Android Studio.app/Contents/bin/lldb/bin/minidump_stackwalk

2.3.2、BreakPad的捕獲原理

由上述可以得知,BreakPad在應用發生NE崩潰時,可以將NE對應的minidump文件寫入到本地,同時會回調給應用層,應用層可以針對本次崩潰做一些處理,達到捕獲統計的作用,后續將minidump文件上傳之后結合minidump_stackwalk以及addr2line工具可以還原出實際堆棧,示意圖如下:

捕獲與解析Android NativeCrash

在應用發生NE時,BreakPad會在手機本地生成一個dump文件,如圖所示:

捕獲與解析Android NativeCrash

得到了以上文件,我們只能知道應用發生了NE,但是這些文件其實是不可讀的,需要解析這些文件。

下面著重講一下如何分析上面產生的NE:

2.3.3、解析dump文件

1、獲取NE崩潰的dump文件,將剛才得到的minidump_stackwalk和dump文件放在同一個目錄,也可以不放,填寫路徑的時候填寫絕對路徑即可。

然后在該目錄下的終端窗口執行以下命令,該命令表示用minidump_stackwalk解析dump文件,解析后的信息輸出到當前目錄下的crashLog.txt文件。

./minidump_stackwalk xxxxxxxx.dmp >crashLog.txt

2、執行完之后,minidump_stackwalk會將NE的相關信息寫到crashLog.txt里面,詳細信息如圖所示:

捕獲與解析Android NativeCrash

3、根據解析出的NE信息,關注圖中紅框,可以得知,這個崩潰發生的libbreakpad-core.so里面,0x161a0代表崩潰發生在相對根位置偏移161a0的位置

2.3.4、獲取崩潰堆棧

1、利用之前提到的addr2line工具,可以根據發生Crash的so文件以及偏移地址(0x161a0)可以得出產生crash的方法、行數和調用堆棧關系。

2、在其根目錄對的終端窗口運行以下命令。

arm-linux-androideabi-addr2line -C -f -e ${SOPATH} ${Address}

-C -f           //打印錯誤行數所在的函數名稱

-e                //打印錯誤地址的對應路徑及行數

${SOPATH}         //so庫路徑

${Address}        //需要轉換的堆棧錯誤信息地址,可以添加多個,但是中間要用空格隔開,例如:0x161a0

3、如下圖是真實運行的示例

aarch64-linux-android-addr2line -f -C -e libbreakpad-core.so 0x161a0

Crash()

/Users/njvivo/Documents/project/Breakpad/breakpad-build/src/main/cpp/breakpad.cpp:111

由上圖可以知道,該崩潰發生在breakpad.cpp文件的第111行,函數名是Crash(),與真實的文件一致,崩潰代碼如下:

void Crash() { volatile int *a = (int *) (NULL); *a = 1; //此處在代碼里是111行} extern 'C'JNIEXPORT void JNICALLJava_com_online_breakpad_BreakpadInit_nUpdateLaunchInfo(JNIEnv *env, jobject instance, jstring mLaunchInfoStr_) {DO_TRY {Crash();const char *mLaunchInfoStr = env->GetStringUTFChars(mLaunchInfoStr_, 0);launch_info = (char *) mLaunchInfoStr;//env->ReleaseStringUTFChars(mLaunchInfoStr_, mLaunchInfoStr); } DO_CATCH('updateLaunchInfo'); }

基于以上,便可以通過應用收集的dump文件解析的NE的詳細堆棧信息。

三、so符號表的提取3.1、提取 so 的符號表

通過以上內容,我們知道,so中包含了一些debug信息,又叫做符號表,那么我們如何將這些debug信息單獨剝離出來呢,ndk也給我們提供了相關的工具。

aarch64架構

/Users/njvivo/Library/Android/sdk/ndk/21.3.6528147/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-android-objdump

arm架構

/Users/njvivo/Library/Android/sdk/ndk/21.3.6528147/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-android-objdump

如下是命令運行的方式,通過此命令,可以將so中的debug信息提取到文件中。

promote:~ njvivo$ aarch64-linux-android-objdump -S libbreakpad-core.so > breakpad.asm

3.2、符號表分析3.2.1、直接分析

如下圖所示就是輸出的符號表文件,結合上面的log以及下面的符號表文件,我們同樣可以分析出堆棧。

如log中所示,已經表明了崩潰地址是161a0,而161a0對應的代碼是*a=1,由上面的分析我們已經知道該崩潰是在breakpad.cpp的111行,也就是*a=1的位置,完全符合預期。

backtrace:

#00 pc 00000000000161a0 /data/app/com.android.necase-lEp0warh8FqicyY1YqGXXA==/lib/arm64/libbreakpad-core.so (Java_com_online_breakpad_BreakpadInit_nUpdateLaunchInfo+16)

#01 pc 00000000000090cc /data/app/com.android.necase-lEp0warh8FqicyY1YqGXXA==/oat/arm64/base.odex (offset 0x9000)

捕獲與解析Android NativeCrash

3.2.2、工具解析

google提供了一個Python的工具,將符號表和log結合起來可以直接分析出堆棧

執行命令,就可以解析出相關堆棧,該工具可以用于服務端批量進行解析,此處不再詳細說明。

python parse_stack.py <asm-file> <logcat-file>

3.2.3、偏移位置簡析

上面文章提到了一個偏移位置的概念,筆者對此了解也不多,不過大致有一個概念,C代碼有一個根位置的代碼的,每行代碼相對根代碼都有一個偏移位置。

如上圖示例log中有一行語句(Java_com_online_breakpad_BreakpadInit_nUpdateLaunchInfo+16),+16就是代表相對nUpdateLaunchInfo方法的位置往后偏移16。

由上圖可以看到,nUpdateLaunchInfo方法的位置是16190,偏移16,也就是16190+10(10進制的16轉化16進制后為10)=161a0,同日志輸出的一樣。

四、總結

以上就是本篇文章的所有內容,主要簡述了so的一些基礎知識,以及Android中NE的崩潰,捕獲解析方案,希望通過該文檔對涉及到NE相關的小伙伴帶來幫助,同時后續CrashSDK也會支持相關NE的解析功能。

以上就是捕獲與解析Android NativeCrash的詳細內容,更多關于Android NativeCrash的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
主站蜘蛛池模板: 日韩一区二区三区在线观看 | 毛片视频网站 | av片网站| 最新av在线网址 | 蜜桃久久av | 婷婷色在线 | 伊人午夜 | 国产免费中文字幕 | 成人免费黄色片 | 91在线导航 | 成av在线 | 91av原创| 亚洲精品字幕 | 午夜寂寞影视在线观看 | 思热99re视热频这里只精品 | 成人午夜毛片 | 欧美午夜视频在线观看 | 有码一区 | 国产精品成人一区二区三区夜夜夜 | 中文字幕亚洲视频 | 成人免费观看视频 | 久久久久无码国产精品一区 | 日韩精品一区二区三区在线播放 | 免费的av网站 | 日韩三级电影在线免费观看 | 亚洲欧美激情精品一区二区 | 国产区免费观看 | 国产区免费在线观看 | 久热久热 | 激情欧美日韩一区二区 | 亚洲精品一区二区 | 91精品一区二区 | 免费视频爱爱太爽了 | 97爱爱视频 | 成人免费视频网站在线看 | 亚洲aaa | 国产一区免费 | 操操网| 亚洲一区二区三区 | 一区二区在线免费观看 | 亚洲视频精品一区 | 色av综合在线| 一色视频| 综合久久亚洲 | 在线不卡一区 | 麻豆91视频| 日韩欧美~中文字幕 | 青娱乐av | 欧美一性一交 | 成人在线小视频 | 成人男女激情免费视频 | 亚州成人 | 国产免费一区 | 狠狠狠干 | 精品久久久久久久久久久院品网 | a在线看| 日韩精品中文字幕在线播放 | 午夜免费福利在线 | 中文字幕亚洲一区二区三区 | 亚洲三级视频 | 久久精品亚洲精品国产欧美 | 亚洲精品一区在线观看 | 成人免费一区二区三区视频网站 | 日韩国产中文字幕 | 欧美日韩午夜精品 | 欧美综合在线一区 | 99热这里有精品 | 色九九| 国产精品欧美久久久久一区二区 | 国产精品久久久久久久午夜片 | 日韩精品一区二区三区免费观看视频 | 国产色| 亚洲人成中文字幕在线观看 | 国产免费av一区二区三区 | 色欧美片视频在线观看 | 欧美精品一区在线发布 | av亚洲在线 | 国产专区在线视频 | 三级视频网站 | 日操视频 | a级网站在线观看 | 日日夜夜爽| 国产精品亚洲视频 | 三级视频在线 | 天天综合7799精品影视 | 天堂av一区 | 性色视频在线观看 | 国产精品毛片久久久久久久 | 亚洲欧美在线免费观看 | 欧美成人免费在线观看 | 欧美在线视频一区二区 | 亚洲国产高清在线 | 国内精品一区二区三区 | 国产精品网址 | 日韩在线一区二区 | 日韩激情网 | 精品国产三级 | 欧美激情一区二区 | 欧美日韩久久 | 亚洲精品一区二区三区蜜桃下载 | 日韩超级大片免费看国产国产播放器 | 欧美日韩精品电影 | 亚洲精品一二三 | 国产日韩亚洲欧美 | 欧美人妖在线 | 在线日韩视频 | 黄色一级视频 | 精品www | 午夜成年人 | 一区二区三区视频免费在线观看 | 国产一区二区在线免费 | 成人国产在线观看 | 不卡在线 | 日本一区高清 | 亚洲一区二区三区四区五区中文 | 国产成人一区二区三区 | 亚洲一区二区日韩 | 国产精品免费视频一区 | 日本二区视频 | 天堂一区 | 国产精品久久久久久久免费大片 | 99久久久久久| 国产成人精品久久二区二区91 | 亚洲成人一区 | 91在线看片 | 免费a大片| 成人福利视频 | 国产精品日韩精品 | 中文字幕婷婷 | 国产精品成人久久久久 | 亚洲高清免费视频 | 色呦呦网站在线观看 | 国产精品久久久久久久午夜 | 5060毛片 | 极品女神高潮呻吟av久久 | 亚洲国产精品久久久男人的天堂 | 亚洲日本欧美日韩高观看 | 亚洲欧美激情视频 | 欧美a区 | 国产精品99久久久久久久vr | 欧美国产精品一区 | 日韩欧美大片在线观看 | 人人干操 | 亚洲视频免费在线 | 91亚洲精品乱码久久久久久蜜桃 | 国产精品久久久久一区二区三区 | 91啪影院| 国产一区二区av在线 | 亚洲成人av在线 | 五月婷婷狠狠爱 | 一本一道久久a久久精品综合蜜臀 | 在线欧美亚洲 | 天堂av中文在线 | 日韩三级电影在线免费观看 | 午夜精品成人一区二区 | 精品一区二区国产 | www久| 日韩中文字幕在线播放 | 久久久久久久久久久网站 | 久久久人成影片一区二区三区 | 成人精品鲁一区一区二区 | 国产精品揄拍一区二区久久国内亚洲精 | 亚洲一级毛片 | 国产视频福利在线观看 | 国产精品一区亚洲二区日本三区 | 日韩城人免费 | 91黄色免费看 | 久久这里只有精品免费 | 性色视频在线观看 | 国产精品久久精品 | 亚洲三级网站 | 国产精品福利在线观看 | 午夜妇女aaaa区片 | 天堂中文资源在线 | 亚洲精品电影网在线观看 | 亚洲综合电影 | 91中文在线观看 | 日本成年人免费网站 | 欧美精品福利视频 | 国产精品视频久久久 | 亚洲欧美激情视频 | 性高湖久久久久久久久aaaaa | 激情999 | 中文字幕亚洲视频 | 国产成人在线免费观看视频 | 天天色天天色 | 日韩一区二区在线观看 | 波多野结衣一区二 | 成全视频免费观看在线看黑人 | 国产激情偷乱视频一区二区三区 | 欧美日韩福利 | 欧美第7页 | 亚州中文字幕蜜桃视频 | 亚洲第一天堂无码专区 | 精品欧美日韩 | 国产精品1区2区 | 国产一区二区三区在线 | 国产一级免费视频 | www亚洲成人 | 影音先锋 色先锋 | 日韩成人在线观看视频 | 中文字幕日韩欧美 | 一级黄色短片 | 久久在线视频 | 亚洲一区二区三区爽爽爽爽爽 | 电影午夜精品一区二区三区 | 中文字幕一区二区三区不卡 | 精品成人免费一区二区在线播放 | 99久久婷婷国产精品综合 | 中文字幕亚洲视频 | 国产精品二区一区二区aⅴ污介绍 | 成人福利在线观看 | 成人在线精品视频 | 国产精品久久久久久久久久久久久久 | 蜜桃色网 | 国产黄网| 午夜视频网址 | 天堂免费在线 | sis001亚洲原创区 | 国产区精品 | 欧美一区永久视频免费观看 | 亚洲 欧美 在线 一区 | 久久精品中文 | 国产激情在线视频 | 一区二区三区中文字幕 | 亚洲成av人片一区二区梦乃 | 日韩一二三区 | 久久天堂电影 | 国产99免费 | 亚洲a级| 国产成人综合一区 | 亚洲人成网站999久久久综合 | a级黄色在线观看 | 自拍偷拍第一页 | 成人免费视频网站在线看 | 精品亚洲国产成av人片传媒 | 亚洲444kkkk在线观看最新 | 日本亚洲视频 | 日韩视频中文字幕 | 黄色一级毛片 | 亚洲欧美综合精品久久成人 | 日韩午夜视频在线观看 | 久综合网| a毛片| 国产成人av在线播放 | 国产三级自拍 | 成人在线视频免费观看 | 天天舔夜夜操 | 午夜国产一级 | 国产一级二级毛片 | 久久精品国产亚洲 | 91精品麻豆日日躁夜夜躁 | 亚洲精品国产综合区久久久久久久 | 九九免费视频 | 欧美日韩国产高清视频 | a毛片毛片av永久免费 | 国产精品免费一区 | 国产精精品 | 欧美精品福利视频 | 亚洲成人一区二区三区 | 免费欧美一级 | 亚洲精品国产区 | 激情久久久久 | 欧美日韩在线视频一区 | 久久久久久亚洲精品视频 | a久久 | 国产情侣一区二区三区 | 91视频免费看 | 日本在线观看一区 | 欧美在线播放一区 | 91黄色在线观看 | 精品久久久久久亚洲精品 | 久久久99国产精品免费 | 亚洲欧美精品一区 | 欧美一级日韩片 | 西西做爰免费视频 | 欧美一级爆毛片 | 大桥未久亚洲精品久久久强制中出 | 亚洲精品一区中文字幕乱码 | 久久久美女 | 日韩欧美国产一区二区三区 | 亚洲福利 | 国产一区二区三区网站 | 7777奇米影视 | 久久不卡 | 最新国产视频 | 久久久精品 | 中文字幕 国产 | 欧美一区二区三区视频在线观看 | 欧美五月婷婷 | 亚洲福利片 | 日韩乱码中文字幕 | 亚洲高清久久 | 亚洲成人精品在线 | 久草青青| 免费成人在线观看视频 | 国产视频久久久 | 99国内精品久久久久久久 | 日韩avav| 美日韩精品视频 | 四季久久免费一区二区三区四区 | 亚洲一区视频网站 | 久久精品91 | 欧美暴操| 欧美成人精品一区二区 | 欧美日韩一区二区三区在线电影 | 国产精品香蕉 | 国产精品久久久一区二区 | 国产综合亚洲精品一区二 | 国产超碰人人模人人爽人人添 | 亚洲综合大片69999 | 一区在线播放 | 欧美精品一二三区 | 日韩在线观看成人 | 久久久久久国产精品 | 免费成人在线网站 | 亚洲欧美日韩天堂 | 欧美一区二区日韩 | 婷婷综合五月天 | 国产精品一区二区三 | 亚洲精品国精品久久99热 | 精品午夜久久久 | 亚洲视频一区二区 | 激情五月综合网 | 亚洲欧美激情精品一区二区 | 在线涩涩 | 精品久久久久久久久久久 | 狠狠中文字幕 | 久久久久国产精品一区二区 | 欧美日韩中文 | 亚洲理论电影在线观看 | 国产精品一区二区三区免费 | 欧洲美女性开放视频 | 96自拍视频 | 黄色成人影视 | 亚洲精品国产乱码在线看蜜月 | 欧美日韩精品一区二区在线观看 | av在线第一页 | 噜噜噜在线 | 这里有精品在线视频 | 国外成人在线视频网站 | 日本亚洲最大的色成网站www | 亚洲国产成人av好男人在线观看 | 国产高清精品一区二区三区 | 日本黄色电影网站 | 久久久精品综合 | 欧美一区中文字幕 | 日韩精品www | 一级做a爰片性色毛片 | 亚洲综合无码一区二区 | 免费黄色网址在线播放 | 亚洲精品一区二区三区 | 中文字幕av在线 | 红桃av一区二区 | 91精品在线观看入口 | 精品一区二区三区免费视频 | 欧美一区视频 | se在线播放| 亚洲福利影院 | 中文字幕免费视频观看 | 国产h片在线观看 | 国产精品成人国产乱一区 | 操操网 | 天天久| 国产成人精品免高潮在线观看 | 国产精品国产成人国产三级 | 久久免费在线观看 | 九九在线精品 | 亚洲福利片 | 国产精品毛片一区二区三区 | 国产精品久久久久一区二区三区 | 国产精品毛片久久久久久 | 亚洲电影一区二区三区 | 欧美日韩亚洲二区 | 成人午夜免费视频 | 久艹伊人| 日韩精品一区二区三区在线 | 男女羞羞羞视频午夜视频 | 国产成人免费视频网站视频社区 | 视频1区2区 | 日韩精品在线一区 | 国产日产精品一区二区三区四区 | 日本一区二区电影 | 午夜a v电影 | 伊人免费在线观看高清版 | 国产在线小视频 | www.日韩在线观看 | 成人免费福利视频 | 91免费观看 | 欧美日韩激情在线 | 成人在线免费观看 | 日韩国产欧美一区 | 国产一区二区三区四区 | 完全免费av | caoporon| 亚洲久久在线 | 日韩av免费在线播放 | 亚洲欧洲一区二区三区 | 欧美视频在线一区 | 久久久久久亚洲 | www久久国产 | 国产精品久久久久久福利一牛影视 | 欧美伦理一区二区三区 | 黄色大片网 | av免费观看网站 | 综合久久久 | 福利网站在线观看 | 成人免费xxxxx在线视频软件 | 蜜桃av在线播放 | 免费精品 | 日韩欧美一级在线 | 免费一区二区三区 | 国产一区二区久久 | 欧美一区中文字幕 | 中文字幕一页二页 | 久久精品二区亚洲w码 | 在线久草 | 国产精品国产精品国产专区不卡 | 中文字幕 在线观看 | 嫩草网站 | 久久99精品久久久久婷婷暖91 | 精品久久久久久久久久久久久久 | 成a人片在线观看 | 91免费观看在线 | 中文字幕一区二区在线观看 | 久久白虎| 亚洲成人精品一区 | 在线观看中文字幕 | 国产综合一区二区 | 精品国产一区一区二区三亚瑟 | 国产免费一区二区 | av黄色在线观看 | 色婷婷在线播放 | 久久亚 | 久久一级| 日本三级国产 | 超碰在线人| 六月综合激情 | 日韩精品中文字幕在线观看 | av在线成人 | 亚洲免费在线播放 | 日韩欧美中字 | 久久999免费视频 | 国产日韩精品一区二区 | 国产一区二区三区久久久 | 欧美成人精品在线观看 | 亚洲精品国产二区 | 91免费在线视频 | 九九成人 | 久久青青| 国产一级黄色av | 在线视频一区二区三区 | 久久国产精彩视频 | 国产精品成人一区二区三区 | 久久a毛片| 国产成人精品久久二区二区 | 午夜激情视频在线观看 | 欧美日韩在线观看一区二区三区 | 国产精品自拍视频 | 一区久久久 | 国产精品69毛片高清亚洲 | 国产欧美日韩精品一区 | 欧美成人综合 | 久久精品黄色 | 久久男人天堂 | 国产精品极品美女在线观看免费 | 精品欧美一区二区三区久久久 | 九九综合| 亚洲精品视频在线观看免费视频 | 99国产精品99久久久久久 | jizz中国zz女人18高潮 | 欧美精品久| 日日干日日爽 | 九九热有精品 | av一区二区三区四区 | 天天操天天草 | 亚洲国产一区二区三区四区 | 久久青 | 久久国产精品久久久久久 | 亚洲网站久久 | 欧美成人性生活视频 | 色玖玖综合| 最新伦理片| 日韩一级| av一区二区三区四区 | 中文字幕日韩专区 | 91色在线| 女同理伦片在线观看禁男之园 | 亚洲综合视频一区 | av看片网| 亚洲精品www久久久久久 | 亚洲成人精品一区二区三区 | 黄色一级免费电影 | 亚洲精品成人悠悠色影视 | 亚洲一区二区三区在线 | 久久精品国产99国产精品 | 欧美精品网 | 91高清在线 | 日本成人久久 | 亚洲成人精品 | 成人久久久 | 精品96久久久久久中文字幕无 | 国产精品一区二区三区久久 | 一级性视频| 色综合av| 中文在线资源 | 亚洲视频一区二区三区 | 精品国产乱码久久久久久久软件 | 国产精品视频网 | 成人影院在线 | 宅男lu666噜噜噜在线观看 | 久久综合九色综合欧美狠狠 | 91社影院在线观看 | 九色一区 | 亚洲第一视频 | 天天干女人 | 日韩av一区二区三区在线观看 | 精品一二区| 欧美在线观看一区 | 亚洲一区二区三区精品视频 | 久日精品| 国产在线精品一区 | 欧美一区视频 | 伊人青青久久 | 精品一区免费 | 精品在线播放 | 欧美午夜视频在线观看 | av在线免费看片 | 国产高清美女一级a毛片久久 | 国产女人爽到高潮免费视频 | 久草高清| 91精品国产乱码久久蜜臀 | 国产成人久久精品一区二区三区 | 欧洲一级视频 | 91精品国产91久久久久久吃药 | 日韩性欧美| av免费在线播放 | 中文字幕亚洲精品 | 中国妞xxxhd露脸偷拍视频 | 亚洲精品国品乱码久久久久 | 免费观看日韩一级片 | 91精品国产综合久久国产大片 | 久久亚洲国产精品 | 国产综合久久 | 欧美一区二区三区精品 | 一色屋精品久久久久久久久久 | 成人精品视频一区二区三区 | 久久精品这里有 | 国产精品一区二区av | 99精品网| 在线观看你懂的视频 | 91久久精品一区二区二区 | 久草毛片| 久久久久久久91 | 亚洲一区欧美 | 国产特一级黄色片 | 久久人人爽人人爽人人片av不 | 欧美黄色性视频 | 亚洲自拍偷拍欧美 | 久久久国产一区二区三区 | 成人免费在线电影 | 一级片在线观看 | 成人精品一区二区三区 | 二区在线观看 | 神马久久久久久久久 | 国产精品一二区 | 亚洲精品午夜aaa久久久 | 亚洲精品国产综合 | 国产区最新 | 亚洲国产精品久久久久秋霞蜜臀 | www国产成人免费观看视频 | 国产福利91精品一区二区三区 | 国产精品自产拍在线观看桃花 | 国产精品久久久久久久久 | 中文二区 | 亚洲激情视频在线观看 | 久久成人精品视频 | 美女黄网| 久久久久久久成人 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 一级毛片免费视频 | 狠狠操操操 | 成人免费小视频 | 亚洲欧美日韩国产综合 | 成人一区电影 | 国产精品久久久久国产a级 日韩在线二区 | 国产精品久久久久久久久久东京 | 亚洲第一天堂 | 亚洲欧洲精品一区二区三区 | 久久精品综合 | 日韩一区二区三区在线视频 | 国产99久久精品一区二区永久免费 | 国产精品久久久爽爽爽麻豆色哟哟 | 亚洲欧洲精品视频在线观看 | 国产精品日日夜夜 | 国产精品亚洲一区 | 成全视频免费观看在线看黑人 | 国产日产精品一区二区三区四区 | 国产精品久久久久久久7电影 | 国产精品999 | 免费av片| 日韩国产在线观看 | 日韩视频在线视频 | 精品午夜久久久 | 99成人 | av片网站| 麻豆一区 | √8天堂资源地址中文在线 成人欧美一区二区三区白人 | 国产操片| 伊人久久综合 | 国产精品视频一区二区三区四 | 91免费影片 | 69av片| 精品自拍视频 | 中文字幕99 |