色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Windows 上搭建 CMU15445 實(shí)驗(yàn)環(huán)境:WSL2 完整指南

Windows 上搭建 CMU15445 實(shí)驗(yàn)環(huán)境:WSL2 完整指南 Windows 上折騰 CMU15445 這門數(shù)據(jù)庫系統(tǒng)課的實(shí)驗(yàn)環(huán)境是很多人入門階段第一個(gè)真正的攔路虎。課程官方給的是 Linux 環(huán)境下的構(gòu)建流程而大部分人的主力機(jī)是 Windows直接硬上要么編譯工具鏈對不上要么某些系統(tǒng)調(diào)用行為不一致跑著跑著就卡在莫名其妙的鏈接錯(cuò)誤上。我前后在幾臺(tái)不同配置的機(jī)器上搭過這套環(huán)境也幫身邊同學(xué)遠(yuǎn)程排查過不少次最后穩(wěn)定下來的方案就是走 WSL 這條路——在 Windows 11 里跑一個(gè)輕量的 Linux 子系統(tǒng)把課程需要的編譯工具鏈、依賴庫、調(diào)試器全部裝進(jìn)去Windows 這邊只負(fù)責(zé)編輯代碼和開終端。這篇內(nèi)容面向的是準(zhǔn)備做 2024Spring 版本實(shí)驗(yàn)、但卡在環(huán)境搭建這一步的同學(xué)不管你之前有沒有用過 WSL、熟不熟悉 CMake都能照著走通。我會(huì)把每一步為什么這么做講清楚把那些官方文檔里不會(huì)寫、但實(shí)際一操作就會(huì)撞上的坑提前擺出來包括 WSL 版本選擇、目錄放在哪、依賴裝哪些、編譯報(bào)錯(cuò)怎么定位這些具體問題。整套流程走完你應(yīng)該能得到一個(gè)能正常cmake、能跑單元測試、能掛調(diào)試器的開發(fā)環(huán)境后面專心寫 Buffer Pool 和 B 樹就行。1. 為什么這套實(shí)驗(yàn)在 Windows 原生環(huán)境下容易翻車先把這件事的底層邏輯說清楚不然很多人會(huì)誤以為是自己的操作問題。CMU15445 的實(shí)驗(yàn)代碼是一套 C 工程依賴 CMake 構(gòu)建、Google Test 做單元測試、還有若干第三方庫比如用于 JSON 解析的庫、用于并發(fā)的組件。這套東西的設(shè)計(jì)前提就是 POSIX 環(huán)境也就是類 Unix 系統(tǒng)的那套文件、進(jìn)程、線程語義。Windows 原生環(huán)境的問題不在于能不能裝編譯器而在于語義差異。舉個(gè)最典型的例子課程代碼里大量使用std::thread、互斥鎖、條件變量來做并發(fā)控制這些在 Linux 上的 pthread 實(shí)現(xiàn)和 Windows 上的線程模型雖然標(biāo)準(zhǔn)庫層面做了抽象但底層行為、調(diào)度時(shí)機(jī)、甚至某些邊界條件下的表現(xiàn)并不完全一致。你在 Windows 上跑單元測試可能出現(xiàn) Linux 上根本不會(huì)出現(xiàn)的偶發(fā)失敗排查起來極其痛苦因?yàn)槟惴植磺迨亲约捍a寫錯(cuò)了還是平臺(tái)差異導(dǎo)致的。再一個(gè)是構(gòu)建工具鏈。課程用的 CMake 腳本里有一些平臺(tái)相關(guān)的判斷邏輯默認(rèn)按 Linux 的路徑和庫名去找依賴。你在 Windows 上用 MSVC 或者 MinGW 去編譯很可能在find_package或者鏈接階段就報(bào)找不到庫。有人試過用 Visual Studio 直接打開結(jié)果 CMake 配置階段就一堆警告和錯(cuò)誤改起來沒完沒了。還有一個(gè)容易被忽略的點(diǎn)文件系統(tǒng)大小寫敏感性。Linux 是大小寫敏感的Windows 默認(rèn)不敏感。課程代碼里如果有#include buffer_pool_manager.h而實(shí)際文件名大小寫有出入在 Windows 上可能蒙混過關(guān)但換到評(píng)測環(huán)境就炸。這種問題在本地開發(fā)時(shí)完全看不出來屬于埋雷。所以結(jié)論很明確與其在 Windows 原生環(huán)境里跟工具鏈和語義差異搏斗不如直接用一個(gè)真正的 Linux 環(huán)境。WSL 就是成本最低的選擇——不用裝雙系統(tǒng)、不用開虛擬機(jī)吃內(nèi)存Windows 11 上的 WSL2 底層是輕量虛擬機(jī)性能和兼容性都?jí)蛴梦募ネㄒ卜奖?。提示不要試圖用 Cygwin 或者 MSYS2 來湊合。這兩個(gè)方案確實(shí)能提供一部分 POSIX 兼容層但面對課程這種涉及線程、內(nèi)存管理、系統(tǒng)調(diào)用的工程兼容層的坑比 WSL 多得多而且社區(qū)里幾乎沒有針對這套實(shí)驗(yàn)的 Cygwin 經(jīng)驗(yàn)可參考出問題只能自己啃。1.1 WSL1 和 WSL2 到底選哪個(gè)這是個(gè)必須一開始就定下來的決策因?yàn)閮烧咔袚Q雖然不算麻煩但裝好的依賴和配置在切換后可能需要重來。WSL1 是系統(tǒng)調(diào)用翻譯層文件系統(tǒng)直接走 Windows 的跨系統(tǒng)訪問文件快但系統(tǒng)調(diào)用兼容性不完整WSL2 是真正的輕量虛擬機(jī)跑的是完整 Linux 內(nèi)核兼容性幾乎和原生 Linux 一致但跨系統(tǒng)訪問文件尤其是從 Linux 側(cè)訪問 Windows 盤符下的文件性能較差。對這套實(shí)驗(yàn)來說答案很明確選 WSL2。原因在于課程代碼涉及大量并發(fā)和內(nèi)存操作WSL1 的翻譯層在某些系統(tǒng)調(diào)用上行為不完整可能出現(xiàn)難以定位的運(yùn)行時(shí)問題。而 WSL2 的完整內(nèi)核能保證 pthread、內(nèi)存映射這些機(jī)制的行為和原生 Linux 一致單元測試結(jié)果可信。代價(jià)是文件訪問性能。這里引出一個(gè)非常關(guān)鍵的實(shí)操建議代碼一定要放在 WSL 自己的文件系統(tǒng)里不要放在 Windows 的盤符下。很多人習(xí)慣在C:\Users\xxx\projects下建工程然后從 WSL 里訪問/mnt/c/...這樣編譯速度會(huì)慢到讓你懷疑人生——因?yàn)槊看挝募x寫都要跨虛擬機(jī)邊界。正確做法是在 WSL 的家目錄下建工程比如~/cmu15445編譯速度能差出好幾倍。1.2 環(huán)境搭建的整體路線圖在動(dòng)手之前先把整條鏈路理清楚避免東一榔頭西一棒子。整體分四步第一步在 Windows 側(cè)啟用 WSL 并裝好一個(gè) Linux 發(fā)行版第二步進(jìn)入 Linux 環(huán)境更新包管理器、裝編譯工具鏈和依賴庫第三步拉取課程代碼配置 CMake 并完成首次構(gòu)建第四步驗(yàn)證環(huán)境跑通單元測試、確認(rèn)調(diào)試器可用。這四步里第一步和第二步是純環(huán)境準(zhǔn)備第三步和第四步才是真正驗(yàn)證這套環(huán)境能不能支撐后續(xù)實(shí)驗(yàn)。很多人卡在第三步的 CMake 配置或者編譯報(bào)錯(cuò)上本質(zhì)是第二步的依賴沒裝全。所以下面我會(huì)把依賴清單列清楚并且解釋每個(gè)依賴是干什么用的這樣你遇到報(bào)錯(cuò)時(shí)能自己判斷缺了什么。2. Windows 側(cè)啟用 WSL 與安裝發(fā)行版的具體操作Windows 11 上啟用 WSL 比早期版本簡單很多一條命令基本搞定但有幾個(gè)前置條件需要確認(rèn)。首先確認(rèn)你的系統(tǒng)版本W(wǎng)SL2 要求 Windows 10 版本 1903 以上或者 Windows 11這個(gè)一般沒問題。其次確認(rèn) CPU 虛擬化在 BIOS 里是開著的WSL2 依賴虛擬化功能如果 BIOS 里關(guān)了裝完也啟動(dòng)不了。最省事的做法是直接用管理員權(quán)限打開 PowerShell執(zhí)行安裝命令。這里有個(gè)細(xì)節(jié)早期需要手動(dòng)啟用適用于 Linux 的 Windows 子系統(tǒng)和虛擬機(jī)平臺(tái)兩個(gè)可選功能然后重啟再設(shè)置默認(rèn)版本為 WSL2。較新的 Windows 11 版本已經(jīng)把這一步合并了一條命令會(huì)自動(dòng)處理啟用功能和安裝默認(rèn)發(fā)行版。wsl --install執(zhí)行完這條命令系統(tǒng)會(huì)自動(dòng)啟用所需功能、下載并安裝 WSL2 內(nèi)核、裝一個(gè)默認(rèn)的 Ubuntu 發(fā)行版然后提示你重啟。重啟后首次進(jìn)入會(huì)要求設(shè)置 Linux 用戶名和密碼這個(gè)用戶名密碼是 Linux 系統(tǒng)內(nèi)部的和 Windows 賬戶無關(guān)記好就行。如果你已經(jīng)裝過 WSL 但不確定版本或者想手動(dòng)控制裝哪個(gè)發(fā)行版可以用下面這組命令。先看當(dāng)前狀態(tài)wsl --status wsl --list --verbose--list --verbose會(huì)列出已安裝的發(fā)行版和它們各自跑的 WSL 版本。如果某個(gè)發(fā)行版顯示 VERSION 是 1需要轉(zhuǎn)成 2wsl --set-version Ubuntu 2轉(zhuǎn)換過程會(huì)花幾分鐘取決于發(fā)行版大小。轉(zhuǎn)完之后再--list --verbose確認(rèn)一下。另外建議把默認(rèn)版本設(shè)成 2這樣以后新裝的發(fā)行版默認(rèn)就是 WSL2wsl --set-default-version 22.1 發(fā)行版選擇與首次進(jìn)入的注意事項(xiàng)默認(rèn)裝的是 Ubuntu對這套實(shí)驗(yàn)來說完全夠用不需要糾結(jié) Debian、Fedora 之類的。Ubuntu 的包管理生態(tài)最成熟網(wǎng)上遇到問題搜到的解決方案也最多。版本上較新的 LTS 版本都行編譯器版本足夠支撐課程代碼的 C 標(biāo)準(zhǔn)要求。首次進(jìn)入 Linux 環(huán)境先做兩件事更新包索引、確認(rèn)基礎(chǔ)工具在。更新這一步別省很多人裝完就直接裝依賴結(jié)果因?yàn)樗饕f導(dǎo)致某些包版本對不上。sudo apt update sudo apt upgrade -yapt upgrade可能會(huì)提示有一些服務(wù)需要重啟或者配置文件沖突一般直接回車用默認(rèn)選項(xiàng)即可。升級(jí)完確認(rèn)一下幾個(gè)基礎(chǔ)工具gcc --version g --version make --version cmake --version如果cmake提示找不到說明還沒裝后面裝依賴時(shí)會(huì)一起處理。這里先確認(rèn) gcc/g 在因?yàn)?Ubuntu 一般自帶。如果連 gcc 都沒有說明這個(gè)發(fā)行版比較精簡需要手動(dòng)裝build-essential。注意WSL 里的 Linux 用戶默認(rèn)不是 root裝軟件要用sudo。如果你在首次設(shè)置時(shí)跳過了密碼設(shè)置某些情況下會(huì)出現(xiàn)可以用sudo passwd重新設(shè)一個(gè)否則后面所有sudo操作都會(huì)卡住。2.2 目錄規(guī)劃工程放哪里決定了你的編譯體驗(yàn)前面提過代碼要放在 WSL 文件系統(tǒng)里這里具體說怎么放。WSL 的家目錄在 Windows 側(cè)可以通過資源管理器訪問路徑大概是\\wsl$\Ubuntu\home\你的用戶名所以放在家目錄下并不影響你用 Windows 的編輯器打開。推薦在 home 下建一個(gè)專門放課程的目錄mkdir -p ~/projects cd ~/projects后續(xù)所有工程都放這個(gè)目錄下。這樣做的另一個(gè)好處是備份和遷移方便——WSL 的整個(gè)文件系統(tǒng)可以導(dǎo)出成鏡像換機(jī)器時(shí)直接導(dǎo)入環(huán)境原樣帶過去。反過來說如果你非要把工程放在/mnt/c/...下編譯時(shí)會(huì)明顯感覺到慢尤其是這套實(shí)驗(yàn)代碼量不小、模板和頭文件依賴多增量編譯的差距會(huì)非常明顯。我實(shí)測過同一個(gè)工程在兩個(gè)位置的完整構(gòu)建時(shí)間差距能到數(shù)倍日常開發(fā)體驗(yàn)完全不是一個(gè)級(jí)別。3. Linux 側(cè)編譯工具鏈與依賴庫的完整清單這一步是整個(gè)環(huán)境搭建的核心依賴裝不全后面 CMake 配置和編譯階段會(huì)以各種看似不相關(guān)的報(bào)錯(cuò)形式暴露出來。我按必需和建議兩檔來列并且說明每個(gè)東西的作用方便你按報(bào)錯(cuò)反查。先裝編譯工具鏈和構(gòu)建工具sudo apt install -y build-essential cmake gitbuild-essential是個(gè)元包包含 gcc、g、make、libc 開發(fā)頭文件等一整套基礎(chǔ)編譯環(huán)境。cmake是構(gòu)建系統(tǒng)課程工程用它來生成 Makefile。git用來拉代碼雖然你也可以在 Windows 側(cè)拉好再拷進(jìn)來但直接在 Linux 里操作更順。然后是這套實(shí)驗(yàn)會(huì)用到的第三方依賴。課程代碼依賴幾個(gè)庫最典型的是用于 JSON 解析的庫和用于測試的 Google Test。Google Test 課程工程一般會(huì)通過 CMake 的 FetchContent 或者子模塊方式引入但有些版本需要系統(tǒng)里預(yù)裝。穩(wěn)妥起見把常見的開發(fā)庫都裝上sudo apt install -y libssl-dev libreadline-dev zlib1g-devlibssl-dev提供加密庫的開發(fā)頭文件某些依賴會(huì)用到libreadline-dev和zlib1g-dev屬于常見的基礎(chǔ)庫裝上避免鏈接階段報(bào)缺庫。這幾個(gè)包體積不大裝了不虧。調(diào)試工具單獨(dú)說。這套實(shí)驗(yàn)后期排查內(nèi)存問題和并發(fā)問題調(diào)試器幾乎是必需品sudo apt install -y gdb valgrindgdb是標(biāo)準(zhǔn)調(diào)試器配合 VS Code 的調(diào)試插件可以圖形化斷點(diǎn)調(diào)試。valgrind用來檢測內(nèi)存泄漏和越界訪問Buffer Pool 那部分實(shí)驗(yàn)里非常有用——你管理的內(nèi)存頁如果釋放邏輯寫錯(cuò)valgrind 能直接指出來。3.1 依賴裝完后如何驗(yàn)證工具鏈完整裝完不要急著拉代碼先做一輪驗(yàn)證把問題擋在編譯之前。驗(yàn)證分三層編譯器能不能正常編譯一個(gè)帶線程的 C 程序、CMake 能不能正常配置一個(gè)最小工程、調(diào)試器能不能掛上。第一層寫個(gè)最小測試程序驗(yàn)證編譯器和線程庫cat /tmp/test_thread.cpp EOF #include iostream #include thread #include vector int main() { std::vectorstd::thread threads; int counter 0; for (int i 0; i 4; i) { threads.emplace_back([counter]() { for (int j 0; j 1000; j) counter; }); } for (auto t : threads) t.join(); std::cout counter counter std::endl; return 0; } EOF g -stdc17 -pthread /tmp/test_thread.cpp -o /tmp/test_thread /tmp/test_thread能編譯通過并輸出結(jié)果說明編譯器和 pthread 鏈接沒問題。注意-pthread這個(gè)參數(shù)課程工程的 CMake 里會(huì)處理線程庫鏈接但你手動(dòng)測試時(shí)要帶上否則會(huì)報(bào)std::thread相關(guān)的鏈接錯(cuò)誤。第二層驗(yàn)證 CMake 能跑通一個(gè)最小工程。這個(gè)其實(shí)拉完課程代碼配置時(shí)自然會(huì)驗(yàn)證但如果你想提前確認(rèn) CMake 本身沒問題可以建個(gè)空目錄放個(gè)最小CMakeLists.txt試一下。第三層驗(yàn)證調(diào)試器隨便編譯一個(gè)帶-g的程序用 gdb 跑一下看能不能斷住這個(gè)后面結(jié)合 VS Code 配置時(shí)再細(xì)說。3.2 一個(gè)容易被忽略的坑默認(rèn)編譯器和 C 標(biāo)準(zhǔn)課程代碼用的是較新的 C 標(biāo)準(zhǔn)C17 及以上而某些 Ubuntu 版本自帶的 g 版本偏老可能對某些特性支持不完整。裝完build-essential后確認(rèn)一下 g 版本g --version如果版本低于 9建議裝個(gè)更新的版本。Ubuntu 的軟件源里通常有多個(gè) g 版本可選比如g-11、g-12。裝完之后可以用update-alternatives切換默認(rèn)版本或者直接在 CMake 配置時(shí)指定編譯器。sudo apt install -y g-12 sudo update-alternatives --install /usr/bin/g g /usr/bin/g-12 100這里update-alternatives的最后一個(gè)數(shù)字是優(yōu)先級(jí)數(shù)字大的優(yōu)先。裝多個(gè)版本時(shí)可以用--config交互式切換sudo update-alternatives --config g提示不要盲目追最新版本。課程代碼在某個(gè)特定編譯器版本上驗(yàn)證過太新的編譯器有時(shí)會(huì)因?yàn)楦鼑?yán)格的標(biāo)準(zhǔn)檢查報(bào)出一些警告甚至錯(cuò)誤。如果遇到莫名其妙的編譯錯(cuò)誤先確認(rèn)是不是編譯器版本太新導(dǎo)致的必要時(shí)降回課程推薦的版本區(qū)間。4. 拉取課程代碼與首次 CMake 構(gòu)建代碼來源這里不展開具體地址你按課程官方渠道獲取即可。拿到代碼后放進(jìn)前面建好的~/projects目錄。進(jìn)入工程根目錄先看一眼目錄結(jié)構(gòu)確認(rèn)有CMakeLists.txt和各個(gè)實(shí)驗(yàn)?zāi)K的子目錄。首次構(gòu)建的標(biāo)準(zhǔn)流程是建一個(gè)獨(dú)立的構(gòu)建目錄然后在里面跑 CMake。這個(gè)習(xí)慣一定要養(yǎng)成——不要在源碼目錄里直接cmake .那樣生成的文件會(huì)和源碼混在一起清理起來麻煩而且容易污染 git 狀態(tài)。cd ~/projects/你的工程目錄 mkdir -p build cd build cmake ..cmake ..這一步會(huì)做依賴檢查、生成構(gòu)建文件。如果前面依賴裝全了這一步應(yīng)該順利通過輸出一堆配置信息。如果報(bào)錯(cuò)重點(diǎn)看報(bào)錯(cuò)信息里提到的找不到的包或者變量名基本能對應(yīng)到缺哪個(gè)依賴。配置成功后開始編譯make -j$(nproc)-j$(nproc)表示用所有可用核心并行編譯能顯著加快速度。nproc會(huì)輸出當(dāng)前環(huán)境的 CPU 核心數(shù)。WSL2 默認(rèn)能用上宿主機(jī)的核心所以并行度一般夠。4.1 CMake 配置階段常見報(bào)錯(cuò)與對應(yīng)處理配置階段最常見的幾類報(bào)錯(cuò)我按出現(xiàn)頻率排一下并給出處理思路。第一類是找不到某個(gè)包報(bào)錯(cuò)形如Could NOT find XXX。這種直接對應(yīng)到缺依賴用apt install裝對應(yīng)的-dev包即可。關(guān)鍵是看懂包名——CMake 報(bào)的包名和 apt 的包名不一定完全一致比如 CMake 找OpenSSLapt 里是libssl-dev。遇到不認(rèn)識(shí)的搜一下CMake 包名 apt 安裝基本能找到對應(yīng)關(guān)系。第二類是編譯器版本或者標(biāo)準(zhǔn)不滿足報(bào)錯(cuò)里會(huì)提到C standard或者某個(gè)特性不支持。處理方式是升級(jí)編譯器或者調(diào)整 CMake 里的標(biāo)準(zhǔn)設(shè)置。課程工程一般會(huì)在CMakeLists.txt里指定標(biāo)準(zhǔn)如果它指定的標(biāo)準(zhǔn)你的編譯器不支持就得升級(jí)編譯器。第三類是路徑或者權(quán)限問題比如某個(gè)目錄不可寫、某個(gè)文件找不到。這種多半是構(gòu)建目錄建錯(cuò)了位置或者從 Windows 側(cè)拷貝文件時(shí)權(quán)限丟了。WSL 里從/mnt/c拷過來的文件可能帶著奇怪的權(quán)限必要時(shí)用chmod修一下或者干脆在 Linux 側(cè)重新拉一份代碼。4.2 編譯階段的鏈接錯(cuò)誤定位思路配置通過但編譯報(bào)錯(cuò)最常見的是鏈接錯(cuò)誤報(bào)錯(cuò)形如undefined reference to XXX。這類錯(cuò)誤的本質(zhì)是編譯器找到了函數(shù)聲明頭文件里有但鏈接階段找不到函數(shù)實(shí)現(xiàn)對應(yīng)的庫沒鏈上或者庫路徑不對。定位思路分三步。第一步看報(bào)錯(cuò)里提到的符號(hào)屬于哪個(gè)庫比如pthread_create屬于 pthread 庫SSL_new屬于 OpenSSL。第二步確認(rèn)這個(gè)庫在系統(tǒng)里裝了沒有用dpkg -l | grep 庫名查。第三步確認(rèn) CMake 里有沒有正確鏈接這個(gè)庫看CMakeLists.txt里的target_link_libraries。課程工程一般已經(jīng)把鏈接配置寫好了如果你遇到鏈接錯(cuò)誤大概率是系統(tǒng)缺庫而不是工程配置問題。少數(shù)情況下是編譯器版本差異導(dǎo)致某些符號(hào)的 mangling 不一致這種比較難搞通常換回課程推薦的編譯器版本能解決。5. 編輯器與調(diào)試器的打通在 Windows 側(cè)高效開發(fā)環(huán)境搭好之后日常開發(fā)的體驗(yàn)取決于編輯器配置。推薦用 VS Code 配合 WSL 插件這樣你在 Windows 側(cè)用熟悉的界面編輯代碼實(shí)際的文件操作和終端都在 WSL 里兼顧體驗(yàn)和性能。裝好 VS Code 后安裝 WSL 擴(kuò)展。然后在 WSL 終端里進(jìn)入工程目錄執(zhí)行code .VS Code 會(huì)自動(dòng)以遠(yuǎn)程模式打開這個(gè)目錄左下角會(huì)顯示當(dāng)前連的是 WSL 環(huán)境。這時(shí)候你裝的 C 擴(kuò)展、CMake 擴(kuò)展都會(huì)在 WSL 側(cè)生效代碼補(bǔ)全、跳轉(zhuǎn)、格式化都能正常工作。調(diào)試配置是重點(diǎn)。VS Code 的 C 調(diào)試需要launch.json針對這套實(shí)驗(yàn)關(guān)鍵是讓調(diào)試器能找到編譯出來的可執(zhí)行文件、能正確設(shè)置工作目錄因?yàn)閱卧獪y試可能依賴相對路徑的資源文件。一個(gè)可用的配置大概長這樣{ version: 0.2.0, configurations: [ { name: Debug Test, type: cppdbg, request: launch, program: ${workspaceFolder}/build/test/你的測試可執(zhí)行文件名, args: [], stopAtEntry: false, cwd: ${workspaceFolder}, environment: [], externalConsole: false, MIMode: gdb, setupCommands: [ { description: Enable pretty-printing for gdb, text: -enable-pretty-printing, ignoreFailures: true } ] } ] }program指向編譯出來的測試可執(zhí)行文件具體路徑看你工程的構(gòu)建輸出位置。cwd設(shè)成工程根目錄這樣測試?yán)镉孟鄬β窂秸屹Y源文件時(shí)不會(huì)出錯(cuò)。-enable-pretty-printing讓 gdb 輸出 STL 容器時(shí)更可讀調(diào)試時(shí)看std::vector、std::unordered_map的內(nèi)容會(huì)方便很多。5.1 用 valgrind 排查內(nèi)存問題的實(shí)操方式Buffer Pool 那部分實(shí)驗(yàn)里內(nèi)存管理是重頭戲頁的分配、回收、替換邏輯寫錯(cuò)很容易造成泄漏或者越界。valgrind 是排查這類問題的利器但用法有講究?;居梅ㄊ侵苯佑盟苣愕臏y試程序valgrind --leak-checkfull --show-leak-kindsall ./build/test/你的測試可執(zhí)行文件--leak-checkfull會(huì)詳細(xì)報(bào)告每一處泄漏的調(diào)用棧--show-leak-kindsall把各種類型的泄漏都列出來。輸出里重點(diǎn)看definitely lost和invalid read/write這兩類——前者是確定的內(nèi)存泄漏后者是越界訪問都是必須修的。有個(gè)細(xì)節(jié)要注意valgrind 跑起來比正常執(zhí)行慢很多所以不要拿它跑整個(gè)測試套件挑單個(gè)失敗的測試用例跑就行。另外 valgrind 對多線程程序的檢測能力有限數(shù)據(jù)競爭這類問題它不一定能抓到那種情況需要?jiǎng)e的工具或者靠代碼審查。注意valgrind 報(bào)告里有時(shí)會(huì)出現(xiàn)一些來自系統(tǒng)庫或者第三方庫的泄漏這些不是你代碼的問題。判斷方法是看調(diào)用棧如果棧頂是你的代碼那就是你的問題如果整條棧都在系統(tǒng)庫里可以忽略。5.2 單元測試的跑法與失敗定位課程工程用 Google Test編譯后會(huì)生成測試可執(zhí)行文件。跑全部測試直接執(zhí)行那個(gè)文件即可但更常用的是按測試套件或者單個(gè)用例過濾尤其是調(diào)試階段。# 跑全部 ./build/test/測試可執(zhí)行文件 # 只跑某個(gè)測試套件 ./build/test/測試可執(zhí)行文件 --gtest_filterBufferPoolManagerTest.* # 跑單個(gè)用例 ./build/test/測試可執(zhí)行文件 --gtest_filterBufferPoolManagerTest.SampleTest--gtest_filter支持通配符用起來很靈活。測試失敗時(shí)輸出會(huì)告訴你哪個(gè)斷言掛了、期望值和實(shí)際值分別是什么結(jié)合調(diào)試器斷到失敗的那一行基本能定位問題。一個(gè)實(shí)操心得測試失敗時(shí)先別急著改代碼先確認(rèn)這個(gè)失敗是不是穩(wěn)定復(fù)現(xiàn)。并發(fā)相關(guān)的測試有時(shí)會(huì)因?yàn)檎{(diào)度時(shí)機(jī)偶發(fā)失敗多跑幾次看是否穩(wěn)定。如果時(shí)好時(shí)壞大概率是并發(fā)邏輯有問題而不是測試本身的問題。6. 環(huán)境穩(wěn)定性維護(hù)與幾個(gè)反復(fù)踩到的坑環(huán)境搭好只是開始用一段時(shí)間后可能會(huì)遇到一些退化問題這里集中說幾個(gè)我反復(fù)踩到的。第一個(gè)是 WSL 磁盤占用越來越大。WSL2 的虛擬磁盤文件會(huì)隨著使用增長但刪除文件后它不會(huì)自動(dòng)收縮。時(shí)間長了可能占掉幾十 GB。處理方式是定期手動(dòng)壓縮先關(guān)掉 WSL然后用 Windows 側(cè)的 diskpart 或者 PowerShell 命令壓縮虛擬磁盤。具體命令網(wǎng)上能查到核心是先wsl --shutdown再對對應(yīng)的 vhdx 文件做 compact 操作。第二個(gè)是依賴庫版本漂移。Ubuntu 的軟件源會(huì)更新某次apt upgrade之后某個(gè)庫的大版本變了可能導(dǎo)致原本能編譯的工程突然報(bào)錯(cuò)。避免方式是在環(huán)境穩(wěn)定后不要頻繁做全量升級(jí)尤其是臨近實(shí)驗(yàn)截止日期時(shí)。如果確實(shí)需要升級(jí)先在一個(gè)副本環(huán)境里驗(yàn)證。第三個(gè)是文件權(quán)限問題。從 Windows 側(cè)往 WSL 里拷文件或者用某些工具同步文件可能導(dǎo)致文件權(quán)限變成所有人可讀寫甚至可執(zhí)行g(shù)it 會(huì)把這些權(quán)限變化當(dāng)成修改。處理方式是配置 git 忽略文件模式變化git config core.fileMode false這樣 git 就不再把權(quán)限變化當(dāng)成文件修改避免一堆莫名其妙的 diff。6.1 編譯緩存與增量構(gòu)建的清理策略CMake 工程的增量構(gòu)建有時(shí)會(huì)因?yàn)榫彺娌灰恢鲁鰡栴}典型表現(xiàn)是改了代碼但編譯結(jié)果沒變或者報(bào)一些奇怪的文件已存在錯(cuò)誤。遇到這種情況最干脆的辦法是清掉構(gòu)建目錄重新來rm -rf build mkdir build cd build cmake .. make -j$(nproc)這套操作雖然要重新全量編譯但能排除掉絕大多數(shù)緩存導(dǎo)致的問題。日常開發(fā)中如果只是改了源碼正常make增量編譯就行不需要每次清緩存。判斷標(biāo)準(zhǔn)是如果增量編譯的結(jié)果和預(yù)期不符或者報(bào)錯(cuò)信息明顯不合理就清緩存重來。另外 CMake 有個(gè)--fresh參數(shù)較新版本支持可以在保留構(gòu)建目錄的同時(shí)重新配置比整個(gè)刪掉溫和一些。不過對這套實(shí)驗(yàn)來說構(gòu)建目錄里沒什么需要保留的東西直接刪了重建最省心。6.2 內(nèi)存與 CPU 資源分配的調(diào)整WSL2 默認(rèn)會(huì)占用宿主機(jī)相當(dāng)一部分內(nèi)存如果宿主機(jī)內(nèi)存不大可能影響 Windows 側(cè)的日常使用??梢栽?Windows 用戶目錄下建一個(gè).wslconfig文件來限制資源[wsl2] memory8GB processors4 swap2GBmemory限制 WSL 最多用多少內(nèi)存processors限制用幾個(gè)核心swap是交換空間大小。改完這個(gè)文件后要wsl --shutdown再重新進(jìn)入才生效。對這套實(shí)驗(yàn)來說8GB 內(nèi)存和 4 個(gè)核心一般夠用編譯和跑測試都不會(huì)太吃力。如果你的機(jī)器配置高可以適當(dāng)放寬。這里有個(gè)權(quán)衡限制太緊會(huì)導(dǎo)致編譯慢、測試跑不動(dòng)限制太松又影響宿主機(jī)。建議先按默認(rèn)跑觀察一下任務(wù)管理器里 WSL 的內(nèi)存占用再?zèng)Q定要不要限制。編譯高峰期內(nèi)存占用會(huì)明顯上升留夠余量比較穩(wěn)妥。7. 從環(huán)境搭建到實(shí)驗(yàn)推進(jìn)的銜接建議環(huán)境通了之后建議先別急著寫實(shí)驗(yàn)代碼花點(diǎn)時(shí)間把工程結(jié)構(gòu)和構(gòu)建流程摸熟。具體做法是找到每個(gè)實(shí)驗(yàn)?zāi)K對應(yīng)的目錄看看里面的頭文件和源文件組織方式跑一遍該模塊的單元測試確認(rèn)測試框架能正常工作。這一步能幫你建立對工程的整體認(rèn)知后面寫代碼時(shí)知道該改哪個(gè)文件、測試怎么加。另外建議在開始每個(gè)實(shí)驗(yàn)前先完整跑一遍該實(shí)驗(yàn)的測試記錄下初始通過率。課程工程通常會(huì)給一些未實(shí)現(xiàn)的接口留空初始狀態(tài)下部分測試是失敗的這是正常的。你后續(xù)的工作就是讓這些失敗的測試逐個(gè)通過。有了初始基線你就能清楚知道自己改動(dòng)的效果。調(diào)試習(xí)慣上我個(gè)人的經(jīng)驗(yàn)是遇到測試失敗先用--gtest_filter單獨(dú)跑那個(gè)用例確認(rèn)能穩(wěn)定復(fù)現(xiàn)然后掛調(diào)試器斷到失敗點(diǎn)看變量狀態(tài)如果涉及內(nèi)存問題再上 valgrind。這個(gè)順序能覆蓋絕大多數(shù)問題比盲目改代碼試錯(cuò)高效得多。最后說一個(gè)心態(tài)上的事。環(huán)境搭建這一步看起來繁瑣但它其實(shí)是整個(gè)實(shí)驗(yàn)過程中最標(biāo)準(zhǔn)化的部分——所有問題都有確定的解法不像后面的算法設(shè)計(jì)那樣需要反復(fù)權(quán)衡。把這一步走扎實(shí)后面寫代碼時(shí)就不會(huì)被環(huán)境問題干擾能專心在數(shù)據(jù)結(jié)構(gòu)和管理策略上。我見過不少人環(huán)境沒搭利索就急著寫代碼結(jié)果每次編譯報(bào)錯(cuò)都分不清是環(huán)境問題還是代碼問題白白浪費(fèi)大量時(shí)間。磨刀不誤砍柴工這話在這套實(shí)驗(yàn)上體現(xiàn)得特別明顯。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产91美女视频| 欧美成人一级麻豆| 超碰国产在线| 99色色| 一区二区三区美女超清| 偷拍新久久| 亚洲一二三精品久久网 | 亚洲精品欧洲精品| 女一区二区| 国产精品无码av在线 | 欧美自拍偷拍免费观看| 日本成熟少妇A∨网站| 久湿久久| 久久女同性恋一二区| 大香蕉在线视频15| 日韩av乱伦| 中文字幕一二区二三区人妻专区| 91bbb| 毛片99-全集电影手机免费观看完整-B029AV | 国产在线能看的你懂的| 久久久9999| 亚洲永久AV无码精品秋霞| 99热伊人| 99日精品欧美国产| 国产福利精品最新在线| 少妇人妻太紧太深av| 精品欧美不卡在线播放| 又粗又长又大国产不卡| 人妻丝袜一区二区三区在线| 激情在线青青操| 亚洲鸥美色图| 91九九九吃| 熟女一区二区三区| 亚洲日本天堂| 黄色片G G G| 一区二区三区四区五区高清无码永久视频 | 日日干夜夜骑| 欧美激情精品| 97超碰中文在线| 91草草草| 精品国产无码中文| 青青伊人这里只有精品| jizzjizz欧美| 新版天堂中文资源8在线| 一本一道vs波多野结衣| 97欧美性爱| 中文字幕国产| 日本色色色色色视频| 美女写真| 91精品电影18| 极品后入免费视频| 欧美图片色五月天| 97久久久久| 久操国产在线| 日韩一级欧美一级国产一级台湾| 五月丁香黄色网| 国产成人精品必看| 日韩人成网站在线播放| 制服乱伦| 亚洲综合在线高清| 99这里都是精品| 丝袜美腿91| 色综合天天爱去电影网| 欧美成人A天堂片在线观看| 欧美少妇性爱网站| 亚洲综合激情五月久久| 男人天堂综合| 人妻天天爽夜夜爽精品2| 好淫网一二三视区| 亚洲精品欧美专业| 日日骚一区二区三区| 校园春色AV天堂| 呦呦一区| 午夜影美女日鸡鸡天天视频国产| 99久久无色码| 日日骚一区二区三区| 啊啊啊啊啊啊在线观看| 无码高清专| 特污免视频| 超碰天天操| 午夜爽爽爽| 久操凹凸视频| 欧美亚洲美少妇一区二区| 免费人人搞97| 国产精品久久| 欧美黄片视频在线观看免费| 亚洲精品一二三四区| 欧美国产操逼| 日本操逼无码| 99久久9| 日本少妇va7777| 尤物视频新赏网鲜网色诱网| 久草免费在线一区二区| 亚州色图欧美| 丰满人妻区一区二区三| 91超级碰碰| 都市激情人妻一区二区青青操视频| 精品女同一区二区三区| 岛国在线一区二区三区| 美欧老女人97| 中文字幕人成乱码熟女香港| 91N欧美| 嗯嗯啊啊啊啊轻点视频| 国产精品白丝在线播放| 九久9热| 欧美第二页午夜| 男女啪啪网站免费视频| 欧美九九九九九| 久久色人体 | 欧美高潮| 在线综合色| 亚洲欧美性生活| 97亚洲在线| 91九色在线| 夜夜精品视频一区二区| av日韩在线观看电影| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 97亚洲在线| 噜噜噜狠狠色综合| 美女好片色日本| 亚洲中文字母在线播放| 美女网站黄页| 久久的网站啊啊啊啊啊| 熟女乱伦A| 在线视频一区二区传媒| 国产一区二区三区免费视频在性观看| 青青草在线视频人人想人人上| 国产精品久久久久久久久久久久| 九久9热| 日逼97| 日韩中文字幕视频在线观看| 色欧美在线| 免费看欧美美女黄色大片| 天天天干977| 日本天天干天天操一区| 六月丁香婷| 亚洲少妇视频| 欧美精品另类人妖xxxx| 日本熟女不卡视频| 亚欧美综合网。| 一本一道vs波多野结衣| 精品人妻一二三| 91色综合激情| 色婷婷基地| 国产精品永久免费10000| 97亚洲色图| 台湾一区国产高清在线| av优播| 亚洲色交| 伊人久久国产免费观看视频| 国产日韩精品人妻久久久久色欲网站| 久久大精品乱码视频人妻熟女| 日本性爱欧美性爱| 亚洲第一视频 欧美风情 日韩| 国模精品娜娜一二三区| 亚洲在线| 一区二三区四区视频大全套| 国产精品色| yiqicaoav| 素人无码中文字幕| 特级毛片特黄久久免费看| 尤物黄色在线观看网站| 97频视在线| 久99热| 97色碰| 97爱b| 蜜臀操逼黄色视频操的好爽| 欧美片第一页| 97久久超碰日韩精品| 性色国产东北露脸精品视频| 97AV爱| 殴美在线AⅤ| 九七超碰| 精品久久97| 日韩资源网| 天天色悠悠激情| 思思热在线视频在线| 国产精品久久久久绯色| 日韩不卡毛片Av免费高清| 久久久久久久9999| 超碰伊人在线| 激情文学欧美| 伊人色综合超碰| 怡红院一区二区熟女人妻| 69精品| 超碰久久网| 中文字幕88av在线| 日本免费不卡二区| 欧美婷婷| 99性爱视频| 色综合网1| 91在线超高颜值国产| A级片一区| 国产精品诱惑| 超碰色97| 蜜臀久久99精品久久久久久成人小说| 99热日| a人欧美综合天堂麻豆| 色色五月婷婷| 精品久久久久9999| 午夜欧美J进J出白浆流出久久久| 夫妻四区五区六区| 伊人色综合超碰| 清清一区二区三区四区不卡视频| 亚洲天堂另类美腿| 午夜天堂精品久久| 国产精品亚洲四五区在线观看| 天美国产精品| 亚洲综合888| 欧美专区在线| 天天干天天日天天射黄色片| 亚洲色图欧美色图制服丝袜| 日韩少妇丰满亚洲| 亚州久久9| 欧美一级专区免费大片 | 国产99999久久精品| 美日韩在线不卡人妻| 亚欧中文字幕在线视频| 嗯嗯啊好大| 欧美97日韩精品| 国产性爱欧美性爱在线| 蜜桃臀av一区二区| 污色区网站| 国产亚洲深夜激情| 日本三级一区二区 在线| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 国产真乱mangent| 高清无码一区二区三区| 日本高清_区二区三区| 国产精品久久99日日| 成人七区| 99精品久久| 性欧美另类高清| 亚洲自拍欧美色综合| 美女诱惑在线一区| 欧美狠狠狠| 蜜臀久久久99久久久久 | 超碰在线国产| 欧美一级欧美三级在线观看| 97超碰这里只有精品| 在线啊啊啊| 黄片免费日韩| 一级黄色牲爱A级片| 99激情| 韩国轻伦国内自拍一区| 99热日| 丰满人妻一区二区三区免费| 免费成人在线观看91| 在线视频免费播放一区| 蜜桃视频精品一区二区| 日本岛国黄色网址| 男人天堂2019| 刺激性视频黄页| 91九色首页| 久久丁香五月婷婷| 国产精品欧美激在线| 日日妻色网| 午夜精品久久99蜜桃的功能章节| 家庭乱伦国产| 99国内精品| 精品综合久久久久久97| 亚洲影院无码在线| 亚洲成人免费在线| 无毛精品| 91精品久久久| 青青国产在线拍揄自揄拍| 加勒比色99999| 午夜一区二区三区国产| 大香蕉在线视频15| 欧美 亚洲精品首页| 欧美精品23| 伊人成人中文字幕久久网| 日韩丝袜高跟制服在线观看| 99无码狠狠久久| 日本精品成人无码| 在线免费试看60秒| 亚洲AV无码翔田千里网站| 精品区9| 97这里只精品| 天天操夜夜操狠很操| 超碰三级秋霞| 久久伊人影院| 日本天天操| 久9综合在线| 人人爱人人操人人性| 香港日本韩国人妇99www.wccm20| 久久精品国产亚洲AV先锋| 1024日韩| 日韩欧美女求操每天更新| 亚洲黄色网址视频| 男人的天堂日本东京热| 中文字幕aⅴ在线视频| 97超碰巨乳| 日本人妻伦在线中文字幕| 无码免费一区二区三区啪啪| 亚洲天堂精品日韩电影| 超碰综合色| 亚洲密乳AV| 99re69综合| 亚洲欧洲中文日韩女优乱码| 噜噜噜久久亚洲精品色情| 国产亚洲性生活视频播放| 嗯嗯嗯啊啊啊操的我好爽| 色波多| 国产夜夜操| 亚洲AV麻豆Aⅴ无码电影一| 四虎 精品 WWW| 日本人妻伦在线中文字幕| 久久久工口| 国产最火爆久久国产网站网站 | 久久久久ab| 国产日韩区| 日韩欧美中文字亚洲慕| 六月丁香久久| 国产一区二区三区高清视频| 91少妇香蕉久久精品| 国产午夜激片Av毛片不卡| 欧美黑人与女人91| 狠狠躁AV| 日本国产高清色www视频在线| 日韩人人精品| 东京热激情视频一二三区| 一级性爱网| 97se综合| 嗯嗯啊啊视频在线看| 国产色产精品在线观看| 蜜臀无码一区二区| 亭亭丁香激情| 亚洲成人性爱在线观看| 青草成人免费视频一COm| 麻豆久久久久久久久丝袜 | 97精品熟女少妇一区| 91熟女.com| 亚洲人人操| 翔田千里爆乳巨臀无码| 天美av在线| 青青草自拍视频在线播放| 天天狠操| 亚洲欧美日韩中文播放| 91国产丝袜美女| 理论久久婷婷网 8| 无码日韩网站| 天天干天天燥| 老熟女综合| 97频视在线| 区日韩亚洲乱码av电影| 人人妻人人狠人人| 乱伦Av网| 国产操伦| av三级电影在线播放| 国桃视频产巨乳精品一区二区在线| 99在线观看| 在线看片国产精品每日更新| 亚洲日韩av专区无码| 五十路熟女,国产欧美精品区一区二区三区| 亚洲91极品| 久精品无码av一区二免费国产在线观看 | 老司机免费视频在线91| 97色插| 激情久久av一区av二区av| 操国产逼| 久久久97| 香蕉欧美| 中文操嬖片。| 曰韩成人免费视频| 久久久久人妻二区精品叶可怜| 九九九成人| 97精选久久| 超碰人妻久久人妻中文97| 欧美夜夜狠| 人妻少妇av在线观看| 天天色黄色影院天天操| 性无码专区2020| 91亚洲人| 天天爽天天操啊啊啊| 欧美日韩人妻精品一区二区三区| 91国内外在线| 欧美激情一| 中文字幕伊人| 欧美国产操逼| 欧美一区二区三熟女剧情| 国产少妇高潮| 高清肉丝中文无码| 亚拍在线| 淫穴高潮色图| 99热精品在线观看| 日韩人妻无码不卡网站| 香蕉人欧美综合| 九热久| 不卡二三区人妻少妇| 精品国产乱码久久久久久久久久毛片| 风间由美日韩欧美久久| 亚洲猛交| 亚洲国产熟妇综合色专区| 精品69网| 日本操逼视频在线| www.伪伪| 国产精品秘 福利姬在线观看| 日本日皮视频逼| www99热| 九九九九久久久| 麻豆天美久久91| 久久这里精品国产99丫e6| 午夜天堂精品久久| 国产人人干| 久久这里只精品| 人妻色偷色噜| 久久成人国产| 四虎影视在线| 日韩av电影网站| 久久久月天| 黄页av| 亚洲AV成人无码一二三久久| 久久精品店| 久久久人妻| 色五月第四色| 亚州欧美在线| 久操操AV电影| 亚洲色久| 久久久久久91香蕉国产| 欧美亚洲韩国视频十五区| 日韩小电影| 欧 美 自 拍 偷 拍| 欧美性爱在线无码| 欧美亚男人的天堂| 久久精品国产97欧美精品亚洲| 国产AV中文| 久操凹凸视频| 日本不卡三级网在线播放| 少好三P| 欧美在线播放| 丁香六月综合激情| 久久久久9999精品九九九| 久久αⅴ| 国产福利第一视频| 99久热精品99re6热| 97欧美综合| 国语对白在线播放视频| 成人色女网| 午夜在线播放| 91成人精品在线播放| 男人的天堂.com| 麻豆一区二区三区在线看 | 大香蕉久久| 国产小炒后入式| 青草一区二区| 日本 欧美 国产一区| 美女啪欧美一区| 91精品91久久久中77777| 一区二区三区免费岛国片| 操人妻丝袜高跟| 国产精品在线免费| 99热精品在线观看| 成人夜夜| 中国探花熟女| 激情婷婷丁香| 国产 热久久久久国产精品| 超碰97资源大奶| 国产精品第一页国产大屁股视频免费区 | 大香蕉宗合网在线| 色九九久九九| 日本九九九九| 婷婷人妻激情| wwwss在线观看| 国产97在线播放| 亚洲国产成人精品无码专区| 久湿久久| 五月色网| 91亚洲情色| 婷婷五月影院| 久久久久久久精| 猛交交| 四虎免费在线观看| 97天天搞在线| 国产在线观看一区二区三区| 人妻在线臀日韩| 看日韩黄片| 国产精品午夜成人福利| gogogo免费高清看中国国语| 久久精品一区二区三区四区五区| 欧美少妇高潮视频| 熟女被操视频网址| 0755午夜福利视频| 99色| 亚洲色图 欧美| 久久久艹艹艹| 精品无码久久久久久国产浪潮| 操逼精品视频| 国产精品亚洲一区二区三区四区| 好涩综合| 伊人久久大香线综合无码| 尤物网址| 青青草公开在线免费不卡视频| 亚洲超碰在线| yiqicaoav| 欧美 日韩 婷婷 五月| 操逼操逼视频操逼| 久热这里只有精品9| 麻豆人妻精品一区二区| 色哟哟AⅤ| 四虎在线免费视频| 日韩女优在线| 免费作爱一级视频| 啊啊啊啊啊好多水| 极品AV网站在线观看| 成人性爱电影网| 91久久青青草原精品| 大香蕉色网| 97久久精品亚洲| 大香蕉色十月| 爱爱久久| 天天综合亚在线| 黄人人操人人操| 肉丝无码中文高清| 骚货人妻偷情自拍在线视频| 午夜视频好爽啊| 玖玖久久久| 亚洲污污网站| 国产原创精品| 欧美操人| 亚洲日韩美国人妻| 亚洲成人综合在线| 丰满熟女人妻一区二区三五十一路| 性色av网站| 日本影视久久免费| 亚州高清AV| 久久久18禁| 久久久蜜桃一区二区三区| 爽极品影院| 中文字幕乱码在线| 91狠狠狠| 亚洲人久久久网| 97舔舔| 国产精品久久久久综合| 一本久道在线综合视频| 伊人影院日本| 亚洲国产97| 九九九九九九精品| 久久99深爱久久99精品| 一区中文字幕二区日韩| 精品国产乱码久久久久久久久1| 嗯啊抽插大香蕉网页| 国产一区二区三区高清视频| 亚洲色电影在线| 男女香蕉一区二区| 丰满人妻一区二区中文| 色娱乐色呦呦夜夜夜夜av| 熟妇人妻一区二区三区| 夜夜爽爽爽| 依人大香蕉| 成人福利视频网| 国产熟女完整版中字| 日韩人妻一区二区| 成人久久久| 丰满人妻一区二区三区免费| 97伊人超碰| 国内精品久9| 欧美亚洲色的图| 欧美,亚洲,日韩,v,天堂,手机在线观看| 久久少妇视频| 久久蜜色情在线视频xxx免费观看| 97视频观看| 欧美黑人性猛交91| 亚洲欧美天堂在线| 狠狠躁日日躁夜夜躁A| 丰满熟女一区二区三区在线播放| 精品美女少妇一区二区| 亚洲一区操| 麻豆区久久久久亚| 久草视频观看视频在线| 欧美日韩情色一区二区| 人人澡人人爽人人精品| 欧美 亚洲 另类 综合| 射丝袜高跟鞋99| 欧美大香蕉97| 中文字幕一区二区三四五区日日骚| 日韩精品99久久久久久中文字幕| 91精品国久久久久久无码| 色综合20p| 99re在线视频这里只有精品| 东京热,男人的天堂| 熟女少妇视频| 国产精品福利资源在线尤物| 国内精品a| 日韩视频啪啪| 亚洲国产第一页综合视频| 久久色激情一区二区三区| 九九九九欧美| 亚洲成人ab| 国产精品4p在线观看| 欧美顶级黄色大片免费| 日韩人妻资源在线看| 人妻精品一区二区全免费| 在线情色电影 91大| 加勒比色99999| 日本孕妇一区二区视频操逼免费看 | 国产成人主播| 就去色综合| 亚洲欧美日韩制服另类| 日本高清一区二区在线| 日本不卡三级网在线播放| 国产在线精品电影观看| 人妻丝袜一区二区三区在线| 91丨豆花丨熟女| 婷婷午夜| 久久精品成人一区二区三区蜜臀| 加勒比综合网| 一区二区娱乐网站| 亚洲人妖网| 91狠狠综合网| 国产超碰| 欧美在线中M| 蜜臀一区二区三区在线 | 夜夜肏2021| 操死我了啊啊啊| 亚洲欧美高清| 欧美在线视频99| 99精品高潮| 一区二区三区免费视频入口| 丁香六月婷| 伊人视频| 无码精品人妻一区二区三区妖精 | 国产v亚洲v日韩v欧美v片另类| 在线中文字幕极品av| 99re这里只有精品3| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 十八禁电影伊人网| 日韩精品一区二区高清 | 国产传媒av天美传媒在线| 在线视频日韩欧美国产| 亚州欧美一区| 天天干干天天干干| 久草婷婷| www久久国产精品| 亚洲18禁| 热99这里有精品综合久久| 亚洲免费看片| 天天色综合影视网| 激情专区综合| 91成人亚洲色图| 久久久免费的精品| 综合性视频99| 久久99午夜精品一区人妻| 狠狠躁日日躁夜夜躁A| 波多野结衣一级视频| 亚洲精品欧洲精品| 熟妇的味道HD中文字幕| 香港日本韩国人妇99www.wccm20| 欧美一区二区三区互相| 青青操在线亚洲视频观看欧美在线| 成人精品无码| 麻豆婷婷成人一二三| 午夜男女爽爽爽影院视频| 免費人妻夜夜爽天天爽爽一区| 最新亚洲黄色免费电影| 久久嫩草国产成人一区| 国产不良强奸视频免费看| 精品国产一区二区三区久久久蜜臀 | 国产美女在线精品免费看| 久草视频制服诱惑| 操B视频日韩无码| 国产成人主播| 国产色精品午夜大片| 伊人嫩草| 97天天摸天天碰| 日韩无码视频黄色| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 天天综合网在线| 日韩人妻一二三区视频| 神马久久免费电影观看| 久久天堂婷婷网| 91免费看一区二区三区| 天天舔天天日天天射| 亚洲天堂无码| 九色黄站| 九九九九九用不成了| 黄片在线免费在线观看| 婷婷色综合欧美日韩| 色www精品视频在线观看| 中国探花熟女| 国产精品人妻免费精品| 无毛精品| 日韩偷拍色图| 欧美人妻精品一区二区| 激情欧美97| 国产av热热色| 亚洲最大91网| 久久亚洲AV成人精品无码| 97Ai亚洲| 97精品97久久| 尻女朋友一夜| 国产精品久久久久无码AV会牛| 亚洲丝袜少妇在线| 亚州熟妇精品| 日韩丝袜人妻AV| 日本在线播放不卡一区| 日韩欧美亚欧在线视频| 免费精品AB| 国产成自自拍在线观看| 屌逼传媒| 日韩精品永久在线观看| 国产一区二区成人av在线播放| 五十路成人在线视频二区三区| 91丝袜美腿网站| 丁香五月婷婷色| 日韩A优精品在线观看| 日韩一级二级三级免费看完整版| 欧美一二级| 亚洲天堂第一页| 免费看毛片操穴| 久久久久成人亚洲国产| 亚洲国产精品无码AV久久久| 9Ⅰ超碰| 九九九九一级| 91国产美女丝袜足交精品视频| 蜜臀少妇一区二区| 日韩性爱高清免费视频| 色欲蜜臀AV| 香伊人在线| 亚洲欧美另类激情小说| 香蕉99秘 一区精品蜜桃臀| 天天影视网色欲色香| 白丝少妇一区二区| 第二页中文字幕| 资源在线观一 二| 五月丁香综合啪啪| av天堂手机版追回| 国产成人无码高清| 久久亚洲AV无码专区国产精品| 襙一襙| 97免费在线观看| 91熟女丨老女人| 天天天肏屄肏屄肏屄欧美欧美| 亚洲人精品午夜不卡| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 97欧美精品综合| 精品大久久| 亚洲精品97在线| 小草三级久久观看| 久久久9视频| 殴美牲| 欧美大香蕉卡久久| 美腿色图| 亚洲少妇在线影音| 东京热不卡视频| 职场同事知名国产国产精品久久欧美日韩 | 欧美日韩青操| 日韩精品影视| 亚洲日韩97| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 天天摸夜夜添无码小视频| 久热在线精品免费观看| 国产黄片精品在线| 人人操人人操草草| 国产亚洲99久久精品| www.色婷婷| 日韩中字av一区| 九九拍拍精品视频在线播放| 夜精品久无码| 日韩无码服务区| 欧美+日产+中文| 夜夜草天天| 亚洲精品啪视频| 色欲久久综合| 大香蕉综合| 伊人色综合欧美| 日本在线999| 精品人妻免费观看| 欧美国产伊人久久久久| 五月丁香影院| 日韩国产十八禁| 搡老熟女国产1000部| 伊人九九九| 在线岛国新天堂8| 欧美黄片欧美黄片xxx| 五月婷婷大香蕉| 青青草十区九区爱夜| 男人的天堂久久狠| 97超碰欧美中文字幕| 精品丝袜无码一区二区三APP| 国产精品爽爽va在线观看98| 98色网| 福利天堂| 国产精品视频在线观看| 久久无码成人| 大香蕉碰碰| 精品中文日韩字幕视频| 亚洲欧美另类图片| 约操熟妇| 精品夜夜澡人妻无码| 岛国不卡超碰护士AV在线播放| 亚洲丝袜少妇在线| 久草网站免费在线观看| 校园春色之综合网| 欧美成人精品一区二区男人蜜臀| 99人妻碰碰碰久久久久禁片| 精品一区二区成人动漫| 91伊人大香蕉| 神马午夜久久| 99日精品欧美国产| 欧美一区二区成人一卡| 国产97免费视频| 精品国产www久久| 日韩99神马视频播放| 久久免费9| 亚洲精品aa久久伊人| 色999偷自拍拍| 欧美色图亚洲激情| 激情看片网站| 99热日| 日本人妻中文字幕精品| 一本一道人妻久久一区二区三区 | 国产精品电影推荐| a片 xxxx受爽视频| 99热精品在线观看| 蜜臀中文无码午夜| 亚洲成熟国产精品美女| 亚洲男人的天堂AV| 欧州一区二区三区四区| 插入综合网| 国产综合久久久麻桃个 | 久久岛国| 久草婷婷| 在线洲亚线| 女人被添高潮免费视频| 任你干在线视频| 乳欲人妻办公室奶水| 亚洲色图加勒比| 黄色免费网| 高树玛利亚无码流出| 国产美女高潮| 中文字幕91综合| 色牛aV| 熟妇高潮一区二区免费视频| 国内一区二区免费| 人妻碰碰碰碰碰碰| 3PAV乱伦视频| 红桃视频高潮| 啪啪啪东京| 九九九九免费高| 无码av永久免费专区网站| 超碰久久精品| 3p国产欧美99热| 桑老女人九区| 色五月婷婷五月天| 久久9久| 精品射1999| 久久国产熟女影院| 在线亚洲精品久久久| 亚洲中文一区二区三区| 人妻五十路在线| 欧美一级A片在线看视频性色| 精品无码久久| 大香蕉AV丝袜| 天天操人人操狠狠插| 丝袜亚洲91| 高清无码国产亚洲| 亚洲色图欧美色图另类图片| 青青草吊丝| 国产精品久久久久亚洲av| 中文字幕精品亚洲熟女| 国产亚洲99久久精品| 久久久新亚洲AV| 试看福利| 大香蕉婷婷| 日本爽爽爽爽爽爽免费视频| 97在线无精品| 亚洲九九夜夜| 久久 国产 无码| 五月天欧美色图| 人妻天堂综合网| 黄色片一区二区三区四区五区| 少妇久久久免费| 无码免费一区二区三区啪啪| 国模私拍一区二区三区神乳| 后入式999| 狠狠久久四虎| 亚洲一区二区三区欧美日韩| 亚洲精品99999| 中文字幕人乱码中文字的预防方法 | Av色五月| 婷婷五月天激情网| 秋霞色色影院| 91热色| 不卡九肏| 久久婷婷伊人| 亚洲密乳AV| 国内一级精品| 国产精品不卡一区二区三区| 婷婷五月花| 亚洲啪啪视频一区二区| 国产熟女精品一区二区| 日韩丨制服丨中文|在线| 天天操天天射青青草| 91在线精品| 国产丝袜欧美在线视频| 九九九九亚洲| 中文久久96| 精品射1999| 五月丁香久久| 青娱乐久久艹| AV一起草在线| 加勒比伊人| 亚洲深夜福利| www.av不卡中文字幕| 青久操| 国产精品一二三区福利| 丰满人妻av一区二区三区| 色色色日本| 国产91 丝袜在线播放00-百度| 蜜臀久久99'精品久久久| 97资源欧美| 操我啊啊啊啊啊| 五月婷婷六月丁香| 91干熟女| 一区二区三区视频在线观看免费| 久久riav中文精品| 亚洲成人在线高清| 国产成人91一区二区三区| 美女高潮国产高清| 欧美色交| 黄站在线免费观看| 欧美青青草视频| 乱久久久| 五月开心久久AV官网| 久久久不卡区一区二区三区久久久| 69人妻人人揉人人躁人人精品| 日韩人妻少妇 一区二区三区| 精品亚洲国产成人AV制服丝袜| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 久草在| 久久鲁夜| 久久婷婷欧美| 国产精品久久久久久久免牛肉蒲团| 亚洲三级网址久久最新| 美女97超碰| 麻豆性爱视频在线播放| 国产青视频| 后入式在线免费观看60秒| 国产熟女| 999九九精品| 中出后入| 毛片99-全集电影手机免费观看完整-B029AV| 超碰久久网| 东京热AV男人的天堂| 色97欧美| 97AV在线观看| 三级日韩一区二区三区| 一级人妻性爱视频| 久久精品中文字幕观看| 久久九九视频九九视频| 国产色呦呦| av大香蕉| 第四色色综合91| 91久久国产综合精品| 一区二区亚州激情久婷婷欧美| 日韩 欧美 国产 麻豆| 日本 情色 1区2区3区| 欧美一区二区| 欧美岛国精品在线观看| 日本性爰一道本| 国产成人久久久精品免费AV| 青草视频在线看看看看看看看看看| 91原创在线观看| 97精品国产手机| 国产中午字一暮区| 精品一区二区三区麻豆| 摸奶性爱视频网站在线免费播放| 欧美十八禁导航成人| 99视频内射三四| 精品国产一区二区三区久久久蜜臀 | 99热婷婷一区二区三| 少妇综合| 中国女人内射6XXXXX| 婷婷在线视频| 国产成人主播| 欧美性爱超碰97| 日本中文字幕不卡视频| 国产综合网站在线播放| 亚洲性爱高潮影院| 欧美在线55555| 久操国产在线| 久久黄色性爱视频| 亚欧精品久久久久久久久久久| 国产精品久久久777| 九九九九一区| 特级特黄一级毛片免费| 超碰精品在线| 9999亚洲电影| 国产精品视频在线观看| 色天使亚洲综合在线观看| 天天爽天天爽| 操91| 青娱乐福利99| 五月天婷婷成人网| 久久久久久久久久久久欧美日| 91爱| 桃花色涩综合影院| 欧美日动态视频| 精品久| 日本理论在线| 日日夜夜噜| 欧美第二页| 亚洲图片偷拍视频区| 久久久久9999妇女| 超碰97久久| 久久九九综合| 97jingpin| 国产AV色黄看到爽| 狼人综合婷婷激情四射 | 香蕉人欧美综合| 欧美丰满熟妇XXXX性ppX人交| 青青草五月天| 亚洲自拍偷拍视频在线| 日日夜夜天天| 欧美日韩亚洲少妇寂寞影院正在播放 | 国产成人主播| 国产精品第一区第一页| 欧美精品成人亚洲| 玖玖久久久| 免费看日产一区二区三区| 欧洲亚洲人人爽爽视频| www亚洲免费| 日夜久久久九九九久| 久久大黄片| 毛片中心9视频99| 射久久| 91亚洲黑人| 97日韩| 亚洲欧美精品一区天堂久久 | 日韩欧美女求操每天更新| 熟女视频久久| 天天性射网| 亚洲AV成人无码一区二区三区在线观看| 东京热熟女亚洲视频网站| 天天弄天天操| 青青伊人久久| 成人八戒网站| 搡老女人老91妇女熟女| 成人三一级一片aaa| 日本久久999| 性爱乱伦一区| 亚洲操操操无码| 亚洲欧洲另类| 欧美日韩在线小说| 91大神电影天堂| 亚洲熟女乱色一区二区三区| 日本一区99| 日韩在线性爱免费视频| 91爱欧美| 一块操欧美| 欧美加勒比| 激情露脸爱| 国产Aα| 超碰偷拍| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 国产精品另类一区大香蕉| 91精品91久久久中77777| 超碰97丝袜| 亚洲精品欧美专业| 久草国产在线视频| 亚洲干B| 99久久无色码| 久久综合资源一区二区| 久久久性少妇| 亚洲成人av色网| 涩综合导航| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 婷婷香蕉欧美在线一区二区三区| 日韩福利电影网| 久久日本熟女精品一区| 天天插天天操| 新亚洲无码| 五十路人妻在线| 日韩一区二区精品视频| 久久精品国内Av熟女高清| 五月天亚洲网| 操九九九九九九| 亚洲国产尤物yw在线观看| 快播电影网日韩新片| 天色综合网| 国产亚洲精品第一最新| 亚洲欧美小说| 亭亭在线资源| 狠狠中文字幕| 日本Xx性爱| 综合另类| 神马久久免费电影观看| 国产自产91区13区| 成人性爱电影网| 极品综合| 国产精品农村妇女| 夜夜嗨绯色| 国产少妇与亚洲av| 中文字幕aⅴ在线视频| 大JI巴好深好爽又大又粗视频| 久久偷偷色综合蜜桃| AV天堂丝袜| 黄色av一区二区在线| 免费自拍三级综合| 97超碰色情| 国产精品毛片| 日本不卡二三区| 精品久久久久,69国产成人精| 亞洲久久直播| 无码动漫av中文字幕| 91色插| 久久影视二区三区行押| 久久久av爱| 精品久久久久,69国产成人精| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 亚洲色图一区二区三区| 本道在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 激情五月天综合网| 亚洲成a人在线观看久| 国产精品久久99日日| 成人性爱电影一区二区| A级毛片在线看免费| 日日操夜夜操天天操免费观看麻豆| 99re6国产精品99re| 国产熟妇一区二区| 丰满少妇人妻久久久久久| 五月天综合网| 91九色精品熟女内射| 青娱乐久久艹| 久草网站免费在线观看| 黄色电影在线播放综合网站 | 日韩草久视频| 99色色网| 夜夜操狠狠操| 99热思思| 丰满人妻一区二区三区| 亚洲激情av| 91狠狠综合久久久| 日本三级韩三级99久久| 中文字幕日本久久| 日欧操屄视频| 国产大学生高潮在线播放| 国产 v乱码一区二| 国产a级午夜毛片| 国产成人www免费人成看片| 久久久国产亚洲精品系列| 中文字幕一区二区三区高清| 久久久久免费看少妇A片特黄| 五月天久久综合网| 国产日韩精品人妻久久久久色欲网站| 亚洲av综合伊人久久| 无码137片内射在线影院| 乱伦日本中文自拍| 涩综合导航| 免费精品人妻一区二区三| 天堂中文日本在线观看| 人妻乱仑一区二区三区| 国产超碰人人操| 97人人干| 嗯啊啊啊轻点视频| 九九久久99| 9久精品视频在线观看| 嗯嗯啊啊日韩精品|