在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

內(nèi)核轉(zhuǎn)儲(chǔ)的設(shè)置

嵌入式與Linux那些事 ? 來源:嵌入式與Linux那些事 ? 作者:仲一 ? 2022-12-19 13:42 ? 次閱讀

簡介

當(dāng)程序運(yùn)行的過程中異常終止或崩潰,操作系統(tǒng)會(huì)將程序當(dāng)時(shí)的內(nèi)存狀態(tài)記錄下來,保存在一個(gè)文件中,這種行為就叫做 Core Dump(中文有的翻譯成“核心轉(zhuǎn)儲(chǔ)”)。

我們可以認(rèn)為 core dump 是“內(nèi)存快照”,但實(shí)際上,除了內(nèi)存信息之外,還有些關(guān)鍵的程序運(yùn)行狀態(tài)也會(huì)同時(shí) dump 下來,例如寄存器信息(包括程序指針、棧指針等)、內(nèi)存管理信息、其他處理器和操作系統(tǒng)狀態(tài)和信息。

core dump 對于編程人員診斷和調(diào)試程序是非常有幫助的,因?yàn)閷τ谟行┏绦蝈e(cuò)誤是很難重現(xiàn)的,例如指針異常,而 core dump 文件可以再現(xiàn)程序出錯(cuò)時(shí)的情景。

核心轉(zhuǎn)儲(chǔ)如何產(chǎn)生

上面說當(dāng)程序運(yùn)行過程中異常終止或崩潰時(shí)會(huì)發(fā)生 core dump,但還沒說到什么具體的情景程序會(huì)發(fā)生異常終止或崩潰。

例如我們使用 kill -9 命令殺死一個(gè)進(jìn)程會(huì)發(fā)生 core dump 嗎?實(shí)驗(yàn)證明是不能的,那么什么情況會(huì)產(chǎn)生呢?

Linux信號是一種異步事件處理的機(jī)制,每種信號都有其對應(yīng)的默認(rèn)操作,你可以在 signal(7) 查看 Linux 系統(tǒng)提供的信號以及默認(rèn)處理。

默認(rèn)操作主要包括:終止進(jìn)程(Term)、忽略該信號(Ing)、終止進(jìn)程并發(fā)生核心轉(zhuǎn)儲(chǔ)(Core)、暫停進(jìn)程(Stop)、繼續(xù)運(yùn)行被暫停的進(jìn)程(Cont)。

如果我們信號均是采用默認(rèn)操作,那么,以下列出的幾種信號,它們在發(fā)生時(shí)會(huì)產(chǎn)生 core dump:

Signal Action Comment 說明
SIGABRT Core Abort signal from abort 來自abort的終止信號
SIGBUS Core Bus error (bad memory access) 總線錯(cuò)誤(內(nèi)存訪問錯(cuò)誤)
SIGFPE Core Floating-point exception 浮點(diǎn)異常
SIGILL Core Illegal Instruction 非法指令
SIGIOT Core IOT trap. A synonym for SIGABRT 物聯(lián)網(wǎng)陷阱。SIGABRT 的同義詞
SIGQUIT Core Quit from keyboard 從鍵盤退出
SIGSEGV Core Invalid memory reference 無效的內(nèi)存引用
SIGSYS Core Bad system call (SVr4) 錯(cuò)誤的系統(tǒng)調(diào)用
SIGTRAP Core Trace/breakpoint trap 跟蹤/斷點(diǎn)陷阱
SIGUNUSED Core Synonymous with SIGSYS SIGSYS 的同義詞
SIGXCPU Core CPU time limit exceeded (4.2BSD) 超出 CPU 時(shí)間限制
SIGXFSZ Core File size limit exceeded (4.2BSD) 超出文件大小限制

這就是為什么我們使用 Ctrl+z 來掛起一個(gè)進(jìn)程或者 Ctrl+C 結(jié)束一個(gè)進(jìn)程均不會(huì)產(chǎn)生 core dump。

因?yàn)榍罢邥?huì)向進(jìn)程發(fā)出 SIGTSTP 信號,該信號的默認(rèn)操作為暫停進(jìn)程(Stop Process);后者會(huì)向進(jìn)程發(fā)出SIGINT 信號,該信號默認(rèn)操作為終止進(jìn)程(Terminate Process)。

同樣,上面提到的 kill -9 命令會(huì)發(fā)出 SIGKILL 命令,該命令默認(rèn)為終止進(jìn)程。而如果我們使用 Ctrl+ 來終止一個(gè)進(jìn)程,會(huì)向進(jìn)程發(fā)出 SIGQUIT 信號,默認(rèn)是會(huì)產(chǎn)生 core dump 的。

還有其它情景會(huì)產(chǎn)生 core dump, 如:程序調(diào)用 abort() 函數(shù)、訪存錯(cuò)誤、非法指令等等。

不會(huì)生成core dump文件的情況

進(jìn)程沒有寫入核心文件的權(quán)限。(默認(rèn)情況下,核心文件稱為 core 或 core.pid,其中 pid 是轉(zhuǎn)儲(chǔ)核心的進(jìn)程的 ID,并在當(dāng)前工作目錄中創(chuàng)建。有關(guān)命名的詳細(xì)信息,請參見下文。)如果出現(xiàn)以下情況,則寫入核心文件失敗:要?jiǎng)?chuàng)建的目錄不可寫,或者如果存在同名文件且不可寫或不是常規(guī)文件(例如,它是目錄或符號鏈接)。

一個(gè)(可寫的、常規(guī)的)文件與用于核心轉(zhuǎn)儲(chǔ)的同名文件已經(jīng)存在,但有多個(gè)硬鏈接到該文件。

將創(chuàng)建核心轉(zhuǎn)儲(chǔ)文件的文件系統(tǒng)已滿;或已用完 inode;或以只讀方式安裝;或者用戶已達(dá)到文件系統(tǒng)的配額。

要?jiǎng)?chuàng)建核心轉(zhuǎn)儲(chǔ)文件的目錄不存在。

進(jìn)程的 RLIMIT_CORE(核心文件大小)或 RLIMIT_FSIZE(文件大小)資源限制設(shè)置為零;請參閱 getrlimit(2) 和 shell 的 ulimit 命令的文檔(csh(1) 中的限制)。

進(jìn)程正在執(zhí)行的二進(jìn)制文件沒有啟用讀取權(quán)限。(這是一種安全措施,可確保內(nèi)容不可讀的可執(zhí)行文件不會(huì)產(chǎn)生可能可讀的核心轉(zhuǎn)儲(chǔ),其中包含可執(zhí)行文件的映像。)

進(jìn)程正在執(zhí)行一個(gè)set-user-ID(set-group-ID)程序,該程序被除進(jìn)程的真實(shí)用戶(組)ID之外的用戶(組)擁有,或者進(jìn)程正在執(zhí)行具有文件能力(capabilities)的程序(請參閱 capabilities(7))。(但是,請參閱 prctl(2) PR_SET_DUMPABLE 操作的說明,以及 proc(5) 中 /proc/sys/fs/suid_dumpable 文件的說明)

/proc/sys/kernel/core_pattern 為空且 /proc/sys/kernel/core_uses_pid 包含值 0。請注意,如果 /proc/sys/kernel/core_pattern 為空且 /proc/ sys/kernel/core_uses_pid 包含值 1,核心轉(zhuǎn)儲(chǔ)文件將具有 .pid 形式的名稱,除非使用 ls(1) -a 選項(xiàng),否則此類文件將被隱藏。

(自 Linux 3.7 起)內(nèi)核配置時(shí)沒有配置 CONFIG_COREDUMP 選項(xiàng)。

此外,如果使用了 madvise(2) MADV_DONTDUMP 標(biāo)志,則核心轉(zhuǎn)儲(chǔ)可能會(huì)排除進(jìn)程的部分地址空間。

啟用內(nèi)核轉(zhuǎn)儲(chǔ)

使用ulimit命令可以查看當(dāng)前的內(nèi)核轉(zhuǎn)儲(chǔ)功能是否生效。-c表示內(nèi)核轉(zhuǎn)儲(chǔ)文件的大小限制,0表示內(nèi)核轉(zhuǎn)儲(chǔ)無效。

root@firefly:~#ulimit-c
0

使用以下命令即可開啟內(nèi)核轉(zhuǎn)儲(chǔ)功能,unlimited表示不限制core文件的大小。

root@firefly:~#ulimit-cunlimited
root@firefly:~#ulimit-c
unlimited

在服務(wù)器上交叉編譯一個(gè)測試程序,確認(rèn)內(nèi)核轉(zhuǎn)儲(chǔ)是否生效。

#include

intmain(void)
{
int*a=NULL;
*a=0x1;
return0;
}
aarch64-linux-gnu-gcc-gtest.c-otest

將生成的可執(zhí)行程序拷貝到開發(fā)板上。

root@firefly:~/code#./test
Segmentationfault(coredumped)
root@firefly:~/code#ls
coretest
root@firefly:~/code#filecore
core:ELF64-bitLSBcorefile,ARMaarch64,version1(SYSV),SVR4-style,from'./test',realuid:0,effectiveuid:0,realgid:0,effectivegid:0,execfn:'./test',platform:'aarch64'

將core文件拷貝到服務(wù)器上,可以使用以下命令解core文件

?mntsudoaarch64-linux-gnu-gdbtestcore
.....

GNUgdb(Linaro_GDB-2017.05)7.12.1.20170417-git
......
warning:Couldnotloadsharedlibrarysymbolsfor2libraries,e.g./lib/aarch64-linux-gnu/libc.so.6.
Usethe"infosharedlibrary"commandtoseethecompletelisting.
Doyouneed"setsolib-search-path"or"setsysroot"?
Corewasgeneratedby`./test'.
ProgramterminatedwithsignalSIGSEGV,Segmentationfault.
#00x00000055815836f4inmain()attest.c:6
6*a=0x1;
(gdb)l6
1#include
2
3intmain(void)
4{
5int*a=NULL;
6*a=0x1;
7return0;
8}
(gdb)

可以看到,在GDB啟動(dòng)后,已經(jīng)打印出test.c的第6行收到了SIGSEGV信號,產(chǎn)生了段錯(cuò)誤。使用list命令可以查看附近的源代碼。

在專用目錄生成內(nèi)核轉(zhuǎn)儲(chǔ)

core文件默認(rèn)會(huì)在當(dāng)前目錄生成,大多數(shù)時(shí)候,我們希望固定core文件的生成位置。

內(nèi)核轉(zhuǎn)儲(chǔ)保存位置可以通過sysctl變量kernel.core_pattern設(shè)置。例如,在/etc/sysctl.conf中做如下設(shè)置。

root@firefly:~#vim/etc/sysctl.conf

#在末尾追加以下兩行
kernel.core_pattern=/root/core/%t-%e-%p-%c.core
kernel.core_uses_pid=0

#使配置生效
root@firefly:~#sysctl-p
kernel.core_pattern=/root/core/%t-%e-%p-%c.core
kernel.core_uses_pid=0

在該狀態(tài)下執(zhí)行test測試程序,就會(huì)在/root/core/下生成內(nèi)核轉(zhuǎn)儲(chǔ)文件。

root@firefly:~/mnt#./test
Segmentationfault(coredumped)
root@firefly:~/mnt#ls/root/core/
1664718591-test-2699-18446744073709551615.core

kernel.core_pattern 中可以設(shè)置的格式符如下

格式符 說明
%% % 字符本身
%p 被轉(zhuǎn)儲(chǔ)進(jìn)程的進(jìn)程 ID(PID)
%u 被轉(zhuǎn)儲(chǔ)進(jìn)程的真實(shí)用戶 ID(real UID)
%g 被轉(zhuǎn)儲(chǔ)進(jìn)程的真實(shí)組 ID(real GID)
%s 引發(fā)轉(zhuǎn)儲(chǔ)的信號編號
%t 轉(zhuǎn)儲(chǔ)時(shí)刻(從 1970/1/1 0:00 開始的秒數(shù))
%h 主機(jī)名(同 uname(2) 返回的 nodename)
%e 可執(zhí)行文件名
%c 轉(zhuǎn)儲(chǔ)文件的大小上限(內(nèi)核版本 2.6.24 后可用)

壓縮轉(zhuǎn)儲(chǔ)文件

kernel.core_pattern也支持管道,可以在kernel.core_pattern 后加入管道符自動(dòng)壓縮內(nèi)核轉(zhuǎn)儲(chǔ)文件。

vim/etc/sysctl.conf
kernel.core_pattern=|/usr/local/sbin/core_helper%t%e%p%c
kernel.core_uses_pid=0
sysctl-p

core_helper內(nèi)容如下

#!/bin/sh
execgzip->/root/core/$1-$2-$3-$4.core.gz

加上可執(zhí)行權(quán)限

chmod777/usr/local/sbin/core_helper

這樣,發(fā)生內(nèi)核轉(zhuǎn)儲(chǔ)時(shí),就會(huì)在/root/core下生成壓縮的轉(zhuǎn)儲(chǔ)文件。

root@firefly:~/mnt#./test
Segmentationfault(coredumped)
root@firefly:~/mnt#ls/root/core/
1664720072-test-2723-18446744073709551615.core.gz
root@firefly:~/mnt#

啟用整個(gè)系統(tǒng)的內(nèi)核轉(zhuǎn)儲(chǔ)功能

在終端通過命令行只是臨時(shí)修改,重啟后無效 ,要想永久修改有三種方式:

在/etc/rc.local 中增加一行 ulimit -c unlimited

在/etc/security/limits.conf最后增加如下兩行記錄:

@rootsoftcoreunlimited
@roothardcoreunlimited

利用內(nèi)核轉(zhuǎn)儲(chǔ)掩碼排除共享內(nèi)存

大型應(yīng)用程序,通常會(huì)跑多個(gè)進(jìn)程。如果所有進(jìn)程的共享內(nèi)存全部轉(zhuǎn)存儲(chǔ)的話,會(huì)對磁盤造成壓力,轉(zhuǎn)儲(chǔ)過程也會(huì)加重系統(tǒng)的負(fù)擔(dān),甚至?xí)捎谵D(zhuǎn)儲(chǔ)時(shí)間過長導(dǎo)致服務(wù)停止時(shí)間過長。

由于共享內(nèi)存的進(jìn)程中,共享內(nèi)存的內(nèi)容是相同的,所以可以只在某個(gè)進(jìn)程中轉(zhuǎn)儲(chǔ)共享內(nèi)存,無需全部轉(zhuǎn)儲(chǔ)。

bit 0轉(zhuǎn)儲(chǔ)匿名私有映射。
bit 1 轉(zhuǎn)儲(chǔ)匿名共享映射。
bit 2 轉(zhuǎn)儲(chǔ)文件支持的私有映射。
bit 3 轉(zhuǎn)儲(chǔ)文件支持的共享映射。
bit 4(自 Linux 2.6.24 起)轉(zhuǎn)儲(chǔ) ELF 標(biāo)頭。
bit 5(自 Linux 2.6.28 起)轉(zhuǎn)儲(chǔ)私有大頁面。
bit 6 (自 Linux 2.6.28)轉(zhuǎn)儲(chǔ)共享大頁面。
bit 7(自 Linux 4.4 起)轉(zhuǎn)儲(chǔ)私有 DAX 頁面。
bit 8(自 Linux 4.4 起)轉(zhuǎn)儲(chǔ)共享 DAX 頁面。

通過coredump_filter的內(nèi)容可以查看設(shè)置情況

cat/proc//coredump_filter

如果要跳過所有共享內(nèi)存區(qū)域,應(yīng)將掩碼值設(shè)置為1.

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5425

    瀏覽量

    123618
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1410

    瀏覽量

    41165
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11473

    瀏覽量

    212995

原文標(biāo)題:內(nèi)核轉(zhuǎn)儲(chǔ)的設(shè)置

文章出處:【微信號:嵌入式與Linux那些事,微信公眾號:嵌入式與Linux那些事】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    崩潰轉(zhuǎn)儲(chǔ)

    10 64bit即使我不使用我的系統(tǒng),我總是有崩潰轉(zhuǎn)儲(chǔ)它有很多原因,如:irql不小于或等于驅(qū)動(dòng)程序irql不小于或等于內(nèi)存管理非分頁區(qū)域中的頁面文件意外的內(nèi)核陷阱kmod異常沒有handeled系統(tǒng)
    發(fā)表于 11-30 11:14

    怎么在B2902A上通過SCPI設(shè)置自動(dòng)觸發(fā)和屏幕轉(zhuǎn)儲(chǔ)

    GRAP TRIG:ALL:IMM(@ 1:2)此時(shí)圖像顯示,它應(yīng)該是新觸發(fā)的數(shù)據(jù)集,但它只顯示最后收集的數(shù)據(jù)。我也試圖從電源獲得屏幕轉(zhuǎn)儲(chǔ)。我使用了HCOP:SDUM:FORM JPG和HCOP
    發(fā)表于 03-19 14:41

    怎么從Virtex 6的FPGA中取出BRAM轉(zhuǎn)儲(chǔ)

    大家好請任何人告訴我。是否有任何方法可以從Virtex 6的FPGA中取出BRAM轉(zhuǎn)儲(chǔ)。提前致謝問候Vir_1602以上來自于谷歌翻譯以下為原文Hi all would anyone please
    發(fā)表于 03-20 15:37

    如何轉(zhuǎn)儲(chǔ)程序4bit程序

    你好先生,我有Spartan 3E套件我正在學(xué)習(xí)它我知道如何轉(zhuǎn)儲(chǔ)程序4bit程序什么是Microbiz以及何時(shí)使用..謝謝拉梅什以上來自于谷歌翻譯以下為原文Hellosir, I am having
    發(fā)表于 05-13 08:19

    MPLABX有字節(jié)字節(jié)的HEX轉(zhuǎn)儲(chǔ)選項(xiàng)嗎?

    我使用MPLABX和XC8編譯器來聲明一個(gè)16位整數(shù)數(shù)組。好的,它是一個(gè)8位處理器。奇怪的是,低字節(jié)似乎需要在一個(gè)奇怪的地址。好,好的。也許吧。但是當(dāng)我看著HEX轉(zhuǎn)儲(chǔ)的時(shí)候,似乎字節(jié)被顛倒了,然后被
    發(fā)表于 07-19 08:42

    位文件轉(zhuǎn)儲(chǔ)后合成設(shè)計(jì)更改

    合成設(shè)計(jì)時(shí),所有FDCE端口都正確連接。但是在將代碼轉(zhuǎn)儲(chǔ)到目標(biāo)之后,我得到的輸出是錯(cuò)誤的。但是,如果我第二次轉(zhuǎn)儲(chǔ),我沒有得到輸出,但只有數(shù)據(jù)捕獲模塊的零。那次我檢查了合成設(shè)計(jì)。現(xiàn)在,F(xiàn)
    發(fā)表于 04-16 07:46

    轉(zhuǎn)儲(chǔ)用于VHDL代碼的saif文件

    我一直在使用xilinx vivado來測試一些代碼。這些代碼通常用于無矢量功率估計(jì)。但是,當(dāng)我嘗試從模擬設(shè)置轉(zhuǎn)儲(chǔ)saif文件時(shí),我收到以下錯(cuò)誤:#log_saif [get_objects
    發(fā)表于 04-20 10:14

    在FPGA上生成位文件和轉(zhuǎn)儲(chǔ)時(shí)無法看到輸出是為什么?

    文件和轉(zhuǎn)儲(chǔ)時(shí),我無法看到輸出。這里我使用的是1.25Gbps的SFP光收發(fā)模塊。是否有任何條件/約束要考慮使SFP啟用?FPGA = Kintex 7系列xc7k160tfbg484-2SFP
    發(fā)表于 05-21 10:58

    有什么方法可以追溯地將加密標(biāo)志應(yīng)用于現(xiàn)有加密設(shè)備上的核心轉(zhuǎn)儲(chǔ)分區(qū)?

    應(yīng)用程序分區(qū)(一個(gè)工廠和兩個(gè) OTA 分區(qū)) ,以及 FATFS 分區(qū)、核心轉(zhuǎn)儲(chǔ)分區(qū)和一些 NVS 分區(qū)等......對于我們現(xiàn)在運(yùn)行此設(shè)置的(數(shù)千臺)野外設(shè)備,我們希望能夠?qū)⒑诵?b class='flag-5'>轉(zhuǎn)
    發(fā)表于 03-02 08:01

    如何轉(zhuǎn)儲(chǔ)QN9021的bin數(shù)據(jù)?

    我們有一款產(chǎn)品使用 Q9021 和 BLE SDK 1.0.0。我們得到了一些退貨單位,我想檢查一下bin文件的代碼是否正確。如何轉(zhuǎn)儲(chǔ)QN9021的bin數(shù)據(jù)?
    發(fā)表于 05-25 07:32

    紫金橋?qū)崟r(shí)數(shù)據(jù)庫_實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)功能深度剖析

    在紫金橋軟件的實(shí)時(shí)數(shù)據(jù)庫版本中,提供了一組與關(guān)系數(shù)據(jù)庫通訊的工具——數(shù)據(jù)轉(zhuǎn)儲(chǔ)工具,數(shù)據(jù)轉(zhuǎn)儲(chǔ)工具包括數(shù)據(jù)轉(zhuǎn)
    發(fā)表于 10-13 16:26 ?8次下載
    紫金橋?qū)崟r(shí)數(shù)據(jù)庫_實(shí)時(shí)數(shù)據(jù)<b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>儲(chǔ)</b>功能深度剖析

    Ubuntu 16.04系統(tǒng)中調(diào)試Apollo項(xiàng)目核心轉(zhuǎn)儲(chǔ)文件的方法

    核心轉(zhuǎn)儲(chǔ)對于程序員調(diào)試程序非常有益,因?yàn)橛行┏绦蝈e(cuò)誤是很難重現(xiàn)的,例如指針異常,而核心轉(zhuǎn)儲(chǔ)文件可以重現(xiàn)程序出錯(cuò)時(shí)的情景。
    的頭像 發(fā)表于 03-23 09:30 ?7324次閱讀

    linux內(nèi)核參數(shù)設(shè)置_linux內(nèi)核的功能有哪些

    本文主要闡述了linux內(nèi)核參數(shù)設(shè)置及l(fā)inux內(nèi)核的功能。
    發(fā)表于 09-17 14:40 ?1497次閱讀
    linux<b class='flag-5'>內(nèi)核</b>參數(shù)<b class='flag-5'>設(shè)置</b>_linux<b class='flag-5'>內(nèi)核</b>的功能有哪些

    內(nèi)核轉(zhuǎn)儲(chǔ)是怎么設(shè)置的?

    當(dāng)程序運(yùn)行的過程中異常終止或崩潰,操作系統(tǒng)會(huì)將程序當(dāng)時(shí)的內(nèi)存狀態(tài)記錄下來,保存在一個(gè)文件中,這種行為就叫做 Core Dump
    的頭像 發(fā)表于 02-17 15:57 ?802次閱讀

    AD轉(zhuǎn)PADS顏色設(shè)置保存版

    AD轉(zhuǎn)PADS顏色設(shè)置保存版
    發(fā)表于 05-29 10:43 ?0次下載
    主站蜘蛛池模板: 奇米久久久 | 日本一二线不卡在线观看 | 日韩高清在线日韩大片观看网址 | 一级做a爱 一区 | 成人国产三级在线播放 | 欧美一级免费 | 亚1州区2区三区4区产品 | 好大好硬好深好爽想要免费视频 | 欧美日韩国产成人高清视频 | aa在线视频 | 大量真实偷拍情侣视频野战 | 泰剧天堂 | 四虎影音在线观看 | 四虎影视永久地址 | 久久久噜噜噜 | 成人黄性视频 | 美女丝袜长腿喷水gif动态图 | 亚洲啪啪 | 免费在线观看视频网站 | 色天天天天综合男人的天堂 | 国产精品女仆装在线播放 | 美女扒开尿口让男人桶 | 啪啪免费网站视频观看 | 国产一区二区三区美女图片 | 2021韩国理论片ok电影天堂 | 国产特级毛片aaaaaa毛片 | 免费观看黄色网页 | 激情综合激情五月 | 人人干免费| 亚洲激情五月 | 激情文学综合网 | 亚洲理论在线观看 | 国产图片区 | 曰韩欧美 | 四虎影院永久在线观看 | 狠狠五月深爱婷婷网 | 综合精品 | 天天靠天天擦天天摸 | 亚洲理论在线 | 亚洲第一香蕉视频 | 国产性夜夜性夜夜爽91 |