99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

M1芯片Mac C++調(diào)試環(huán)境搭建:VS Code+LLDB從入門到排坑

M1芯片Mac C++調(diào)試環(huán)境搭建:VS Code+LLDB從入門到排坑 我一直覺得在M1芯片的Mac上配好一套順手的C調(diào)試環(huán)境比在普通機(jī)器上多踩的那幾個(gè)坑恰恰是理解整個(gè)編譯調(diào)試鏈路最好的機(jī)會(huì)。網(wǎng)上教程很多但大多是Intel Mac時(shí)期的存量經(jīng)驗(yàn)照搬到Apple Silicon上經(jīng)常會(huì)遇見莫名其妙的問題明明編譯過(guò)了斷點(diǎn)卻不命中明明裝好了調(diào)試器啟動(dòng)時(shí)卻提示架構(gòu)不匹配。這篇文章把我自己從零配通、日常開發(fā)的完整過(guò)程拆開來(lái)講包括每一步背后的原理和取舍希望幫你少走彎路。我默認(rèn)你已經(jīng)裝好了VS Code和Homebrew至少對(duì)終端操作不陌生。如果你連Homebrew都沒裝可以先花十分鐘裝一下后面步驟會(huì)順暢很多。1. 為什么M1芯片會(huì)讓老教程集體翻車先搞清楚你面對(duì)的工具鏈很多人拿到M1芯片的MacBook第一件事就是搜索vscode配置C然后照著2019年甚至更早的文章一步步操作最后卡在各種古怪的報(bào)錯(cuò)里。這不完全是操作問題而是硬件架構(gòu)變了底層邏輯也跟著變了。1.1 從x86_64到arm64這不是換了個(gè)CPU那么簡(jiǎn)單M1芯片是Apple Silicon指令集基于ARM架構(gòu)。過(guò)去幾年幾乎所有Mac端的C教程默認(rèn)你用的是Intel x86_64架構(gòu)。這意味著網(wǎng)上能搜到的預(yù)編譯二進(jìn)制、SDK路徑、甚至是VS Code插件里一些原生模塊很多都只適配了x86_64。當(dāng)你在這臺(tái)機(jī)器上執(zhí)行一個(gè)沒有針對(duì)arm64優(yōu)化過(guò)的程序時(shí)系統(tǒng)會(huì)通過(guò)Rosetta 2進(jìn)行二進(jìn)制翻譯。這是一個(gè)透明但并非無(wú)代價(jià)的過(guò)程首次運(yùn)行會(huì)有額外的翻譯開銷某些依賴了底層硬件的調(diào)試功能也可能表現(xiàn)異常。更麻煩的是如果你同時(shí)裝了x86_64和arm64兩套工具鏈CMake或者編譯腳本一旦探測(cè)錯(cuò)了架構(gòu)整條構(gòu)建鏈就會(huì)亂套。我在第一次配置時(shí)直接用g命令編譯報(bào)錯(cuò)信息指向一個(gè)完全沒有印象的路徑。后來(lái)發(fā)現(xiàn)很多教程里讓裝的編譯器本身就是通過(guò)Rosetta裝在Intel目錄下的。1.2 編譯器、調(diào)試器和VS Code插件三層都要匹配一個(gè)可用的調(diào)試環(huán)境至少由三層組成編譯器負(fù)責(zé)把代碼變成機(jī)器碼調(diào)試器負(fù)責(zé)附加上去并讀取運(yùn)行信息VS Code插件負(fù)責(zé)把這兩者串起來(lái)。編譯器層Apple Clang、Homebrew Clang、或者你自己編譯的GCC各自的安裝路徑和默認(rèn)架構(gòu)可能完全不同。Apple Clang隨系統(tǒng)自帶路徑穩(wěn)定用來(lái)入門最省心。調(diào)試器層在macOS上LLDB是首要調(diào)試器。很多網(wǎng)上教程會(huì)讓你裝GDB但我強(qiáng)烈不建議在M1上折騰GDB兼容性和權(quán)限問題會(huì)讓你欲哭無(wú)淚。系統(tǒng)自帶的LLDB版本和CodeLLDB插件配合得很好。插件層C/C插件就是微軟官方的那個(gè)C/C extension負(fù)責(zé)解析IntelliSense而調(diào)試部分可以交給CodeLLDB插件。這兩個(gè)插件在Apple Silicon上都有原生arm64版本效率比轉(zhuǎn)譯版本高不少。理解了這個(gè)三層結(jié)構(gòu)你再看配置時(shí)看到的launch.json、tasks.json就會(huì)明白每個(gè)字段到底在跟哪一層對(duì)話排查問題也會(huì)更有方向。搞清楚了這一點(diǎn)我們直接進(jìn)入實(shí)操。我推薦一步步來(lái)而不是直接拷貝別人的完整配置因?yàn)槊恳徊蕉贾档媚阌H眼看到輸出結(jié)果。2. 編譯器選型與安裝用Apple Clang還是Homebrew Clang在M1 Mac上你至少有兩個(gè)主流選擇系統(tǒng)自帶的Apple Clang和通過(guò)Homebrew安裝的LLVM Clang。我不太建議在這個(gè)階段自己編譯GCC時(shí)間成本高收益卻不明顯。2.1 Apple Clang零成本、路徑穩(wěn)定、夠用Apple Clang隨Xcode Command Line Tools一起安裝是絕大多數(shù)情況下的默認(rèn)選項(xiàng)。打開終端輸入xcode-select --install如果系統(tǒng)提示已安裝就可以直接用clang --version確認(rèn)。Apple Clang自帶了對(duì)Apple Silicon的原生支持編譯出的可執(zhí)行文件默認(rèn)就是arm64架構(gòu)調(diào)試時(shí)能完全發(fā)揮芯片性能。它的好處是省心路徑穩(wěn)定、更新隨系統(tǒng)、對(duì)macOS SDK的支持最好。缺點(diǎn)在于版本更新節(jié)奏跟隨系統(tǒng)如果你想用最新的C標(biāo)準(zhǔn)特性或者要用到OpenMP這類并行庫(kù)Apple Clang會(huì)顯得貧瘠——它不自帶libomp需要額外折騰。2.2 Homebrew的LLVM Clang工具鏈者的選擇如果你要寫的是計(jì)算密集型項(xiàng)目或者重度依賴較新的C標(biāo)準(zhǔn)我建議你裝Homebrew的LLVMbrew install llvm裝完后它的可執(zhí)行文件在/opt/homebrew/opt/llvm/bin/clang。注意Homebrew在Apple Silicon上的根目錄是/opt/homebrew不是/usr/local。這個(gè)差異極其關(guān)鍵網(wǎng)上大量過(guò)時(shí)教程讓你在/usr/local里找路徑在M1上根本找不到。選Homebrew LLVM的另一個(gè)原因是它附帶了完整的LLVM工具鏈llvm-gdb、clang-tidy、lldb等一應(yīng)俱全配合CodeLLDB插件做靜態(tài)分析和調(diào)試體驗(yàn)都更順滑。代價(jià)是路徑需要自己配置環(huán)境變量得手動(dòng)維護(hù)。我個(gè)人的建議是如果你只是做課程作業(yè)、刷算法題、寫小工具直接用Apple Clang如果你準(zhǔn)備認(rèn)真搞工程或者涉及OpenMP、CUDA雖然M1沒有、新標(biāo)準(zhǔn)特性安裝Homebrew LLVM是值得的。下面的配置以Apple Clang為主因?yàn)閷?duì)大多數(shù)讀者來(lái)說(shuō)這是最簡(jiǎn)路徑但我會(huì)在文末補(bǔ)充CMake工具鏈切換方法方便你隨時(shí)換。2.3 確認(rèn)架構(gòu)防止慣性的Intel路徑思維裝完編譯器后驗(yàn)證一下默認(rèn)架構(gòu)是很有必要的file $(which clang)clang大概率是指向/usr/bin/clang的符號(hào)鏈接你可以直接編譯一個(gè)測(cè)試文件看產(chǎn)物架構(gòu)echo int main(){return 0;} test.cpp clang test.cpp -o test file test輸出里會(huì)明確寫著arm64。如果這里顯示了x86_64說(shuō)明你的編譯器本身是Intel版本運(yùn)行在Rosetta之下。雖然它也能工作但我建議換成原生arm64版本避免后續(xù)調(diào)試時(shí)出現(xiàn)莫名奇妙的符號(hào)解析問題。3. 最小可運(yùn)行配置從tasks.json到launch.json的完整鏈路網(wǎng)上多數(shù)教程會(huì)讓你自己分層配置先寫tasks.json定義編譯任務(wù)再寫launch.json定義調(diào)試啟動(dòng)方式。這一步確實(shí)繞不開但我希望幫你把邏輯捋順而不是機(jī)械地抄參數(shù)。3.1 VS Code插件安裝不要貪多打開VS Code擴(kuò)展面板搜索C/C安裝微軟官方cpptools插件。如果你要用LLDB調(diào)試macOS下的默認(rèn)選擇我強(qiáng)烈建議再裝一個(gè)CodeLLDB插件。這兩個(gè)插件在Apple Silicon上都有原生arm64版本使用體驗(yàn)遠(yuǎn)好于通過(guò)Rosetta轉(zhuǎn)譯的版本。裝完后在命令面板CommandShiftP里輸入C/C: Select IntelliSense Configuration選擇macOS (Apple Clang)或macOS (clang/arm64)。這一步能讓代碼補(bǔ)全和錯(cuò)誤檢查準(zhǔn)確識(shí)別你的編譯器。3.2 tasks.json先編譯出能跑的東西在項(xiàng)目根目錄建一個(gè).vscode文件夾在里面新建tasks.json。這個(gè)文件的作用是定義構(gòu)建任務(wù)——你按CommandShiftBVS Code就會(huì)執(zhí)行這里面的命令。對(duì)于單文件調(diào)試一個(gè)最簡(jiǎn)單的tasks.json長(zhǎng)這樣{ version: 2.0.0, tasks: [ { label: build single file, type: shell, command: clang, args: [ -g, ${file}, -o, ${fileDirname}/${fileBasenameNoExtension}.out ], group: { kind: build, isDefault: true }, problemMatcher: { owner: cpp, fileLocation: [relative, ${workspaceFolder}], pattern: { regexp: ^(.*):(\\d):(\\d):\\s(warning|error):\\s(.*)$, file: 1, line: 2, column: 3, severity: 4, message: 5 } } } ] }這里重點(diǎn)解釋幾個(gè)容易被忽略的字段-g生成調(diào)試符號(hào)。沒有這個(gè)參數(shù)VS Code即使attach上了進(jìn)程也看不到變量值斷點(diǎn)也會(huì)顯示為未驗(yàn)證地址。說(shuō)到斷點(diǎn)如果你想深入了解斷點(diǎn)命中的底層原理可以看看LLDB的日志輸出命令是log enable lldb breakpoint這會(huì)輸出斷點(diǎn)管理的一手信息對(duì)理解為什么斷點(diǎn)不生效很有幫助。${file}和${fileDirname}/${fileBasenameNoExtension}.outVS Code內(nèi)置變量分別代表當(dāng)前打開的文件路徑和同目錄下同名.out文件。這種寫法能讓你從任何目錄構(gòu)建當(dāng)前文件。problemMatcher這是把編譯器輸出解析成問題面板條目的正則。如果你不寫編譯報(bào)錯(cuò)時(shí)只能在終端里滾動(dòng)翻找很不方便。3.3 launch.json調(diào)試會(huì)話怎么啟動(dòng)、怎么附加接下來(lái)在.vscode文件夾里新建launch.json。這里才是調(diào)試的主控室{ version: 0.2.0, configurations: [ { type: lldb, request: launch, name: Debug C, program: ${fileDirname}/${fileBasenameNoExtension}.out, args: [], cwd: ${workspaceFolder}, preLaunchTask: build single file, terminal: console } ] }注意type字段是lldb這是CodeLLDB插件提供的調(diào)試器類型。如果你用的是微軟C/C插件也可以寫type: cppdbg并且設(shè)置MIMode: lldb但實(shí)測(cè)中CodeLLDB對(duì)LLDB特性的支持更完整環(huán)境變量映射也更符合直覺。preLaunchTask字段讓調(diào)試啟動(dòng)前自動(dòng)執(zhí)行剛才的編譯任務(wù)這樣你每次按F5都是先編譯再調(diào)試不用手動(dòng)切到終端敲命令。3.4 驗(yàn)證鏈路從編譯到斷點(diǎn)命中配置好后打開任意一個(gè)包含main函數(shù)的.cpp文件按F5。如果一切正常你會(huì)看到底部終端彈出編譯輸出隨后程序運(yùn)行到入口點(diǎn)并暫停。這里我想單獨(dú)說(shuō)明terminal字段。在macOS下VS Code的默認(rèn)外置終端是Terminal.app但CodeLLDB插件支持把調(diào)試進(jìn)程放在VS Code內(nèi)置的集成終端里。terminal設(shè)為console時(shí)stdout會(huì)直接顯示在調(diào)試控制臺(tái)里配合console調(diào)試更順滑。如果你跑的是需要手動(dòng)輸入的程序需要把它改成terminal或者在args里預(yù)先指定輸入方式。有時(shí)候你把斷點(diǎn)打在變量賦值那一行按F5發(fā)現(xiàn)直接一路執(zhí)行到底斷點(diǎn)變成了灰色空心圓。這通常意味著調(diào)試符號(hào)沒有傳到LLDB或者編譯優(yōu)化把代碼內(nèi)聯(lián)了。處理方式很簡(jiǎn)單確認(rèn)編譯命令里帶了-g并且在沒有-O2以上的優(yōu)化標(biāo)志下重試。4. CMake工程場(chǎng)景別再依賴單文件編譯了當(dāng)你開始寫多個(gè)源文件、依賴第三方庫(kù)的時(shí)候單文件編譯的tasks.json就不太夠用了。哪怕VS Code能通過(guò)args把多個(gè)文件塞給編譯器那也只是拼湊而不是工程化管理。這一節(jié)給你一套基于CMake的做法在M1 Mac上非常穩(wěn)定。4.1 CMake與生成器的選擇Unix Makefiles還是NinjaHomebrew裝CMake很簡(jiǎn)單brew install cmake裝完后在項(xiàng)目根目錄建一個(gè)CMakeLists.txt。對(duì)于Apple Silicon生成器我推薦用Ninja。Ninja比起Unix Makefiles的并行能力更強(qiáng)增量構(gòu)建更快而且在VS Code里集成得也很自然brew install ninja4.2 最小可用CMakeLists.txt參考下面這個(gè)文件可以直接扔到你的項(xiàng)目里當(dāng)作起點(diǎn)cmake_minimum_required(VERSION 3.20) project(DemoProject LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_executable(main main.cpp)如果你要用OpenMP不要忘了Apple Clang不自帶libomp需要另外處理。簡(jiǎn)單說(shuō)通過(guò)Homebrew裝libomp然后在CMake里手動(dòng)找到它。Apple Clang的-fopenmp并不像Linux GCC那樣自帶實(shí)現(xiàn)這一塊容易踩坑我在后文會(huì)專門提。4.3 VS Code里跑CMake用官方的CMake Tools插件微軟有個(gè)官方CMake Tools插件可以和tasks.json體系無(wú)縫銜接。裝好后CommandShiftP輸入CMake: Select a Kit選擇Apple Clang或者Homebrew Clang——這一步其實(shí)是告訴CMake用哪個(gè)編譯器。如果Kit列表里一片空白檢查一下插件設(shè)置里的cmake.scanForKits是否開啟或者手動(dòng)指定{ cmake.kits: [ { name: Apple Clang arm64, compilers: { C: /usr/bin/clang, CXX: /usr/bin/clang } } ] }之后按F7觸發(fā)構(gòu)建F5調(diào)試時(shí)調(diào)試會(huì)話會(huì)直接命中CMake構(gòu)建出來(lái)的可執(zhí)行文件。對(duì)比單文件tasks.json這種方式生成的可執(zhí)行文件路徑由CMake管理你不需要自己去匹配路徑變量。5. M1 Mac上調(diào)試C環(huán)境常見的坑與排查鏈路配置過(guò)程我走了不少?gòu)澛愤@里把踩過(guò)的坑整理成排查鏈路每個(gè)條目都對(duì)應(yīng)具體的報(bào)錯(cuò)現(xiàn)象和解決思路幫你快速定位。5.1 構(gòu)建成功但斷點(diǎn)不生效先從可達(dá)性查起斷點(diǎn)不生效是個(gè)高頻問題但原因可能很多。我的排查順序是確認(rèn)可執(zhí)行文件里包含調(diào)試符號(hào)終端執(zhí)行nm -g yourBinary如果輸出的符號(hào)列表里有_main這類函數(shù)符號(hào)說(shuō)明調(diào)試符號(hào)在如果輸出顯示stripped那就是編譯階段沒加-g。確認(rèn)VS Code當(dāng)前調(diào)試會(huì)話的program路徑和實(shí)際的二進(jìn)制路徑是否一致。如果打過(guò)不可執(zhí)行權(quán)限LLDB會(huì)靜默失敗。檢查是否有多個(gè)同名.cpp文件VS Code的斷點(diǎn)是基于源文件路徑的解決方案文件夾如果和實(shí)際路徑不一致斷點(diǎn)就會(huì)顯示為灰色。這時(shí)候需要檢查launch.json里的sourceFileMap字段把路徑映射到真實(shí)路徑。如果你遇到斷點(diǎn)完全不可用的場(chǎng)景直接在終端里用LLDB手動(dòng)啟動(dòng)程序執(zhí)行breakpoint set --file main.cpp --line 5然后run如果LLDB自己能命中說(shuō)明lldb-server或插件側(cè)的映射出了問題連LLDB都命中不了那問題大概率出在編譯命令上。這個(gè)問題我重點(diǎn)講是因?yàn)榫W(wǎng)上很多帖子讓你重裝插件或者關(guān)掉各種優(yōu)化其實(shí)都不如直接用LLDB驗(yàn)證來(lái)得快。實(shí)踐里一個(gè)干凈的-g編譯加上明確的路徑映射能解決九成斷點(diǎn)問題。5.2 Unable to find LLDB或版本不匹配CodeLLDB插件和系統(tǒng)LLDB的版本兼容性CodeLLDB插件自帶了一個(gè)LLDB但它依賴系統(tǒng)上某些動(dòng)態(tài)庫(kù)。每次macOS系統(tǒng)升級(jí)后插件偶爾會(huì)報(bào)找不到liblldb的錯(cuò)誤。這時(shí)候最簡(jiǎn)單的做法是brew install llbd不沒有這個(gè)包名。正確做法是讓CodeLLDB使用系統(tǒng)自帶的LLDB路徑在launch.json里增加lldb: { executable: /usr/bin/lldb }如果還是不行進(jìn)VS Code插件市場(chǎng)把CodeLLDB升級(jí)到最新版并且檢查lldb.library設(shè)置是否指到了正確的liblldb.dylib路徑。從實(shí)戰(zhàn)經(jīng)驗(yàn)看VS Code和插件兩邊盡量保持最新能避免90%的兼容性問題。5.3 Rosetta轉(zhuǎn)譯串臺(tái)IntelliSense和調(diào)試器架構(gòu)不一致這是Apple Silicon獨(dú)有的坑你可能在Homebrew默認(rèn)路徑/opt/homebrew里裝了arm64的編譯器但某個(gè)依賴庫(kù)或者工具鏈配置腳本里硬編碼了/usr/local的Intel路徑導(dǎo)致CMake探測(cè)到了矛盾的架構(gòu)。排查方式很直接在CMakeLists.txt里臨時(shí)打印CMAKE_SYSTEM_PROCESSOR和CMAKE_CXX_COMPILER確認(rèn)編譯器是arm64并且系統(tǒng)處理器顯示arm64。如果顯示x86_64那就是工具鏈配置腳本里強(qiáng)制指定了Intel需要追溯是哪個(gè)第三方庫(kù)帶偏的。日常使用中你會(huì)遇到一種情況需要同時(shí)保留Intel和arm64兩套環(huán)境比如某些二進(jìn)制依賴只提供x86_64版本。這時(shí)候建議在VS Code的settings.json里給每個(gè)工作區(qū)分開指定路徑不要全局配置一個(gè)編譯器路徑。5.4 運(yùn)行OpenMP程序閃退Apple Clang的libomp缺失很多人在M1 Mac上寫上OpenMP代碼編譯能通過(guò)但一運(yùn)行就崩潰。原因在于Apple Clang本身不帶OpenMP運(yùn)行時(shí)。我建議通過(guò)Homebrew安裝brew install libomp然后在編譯命令里顯式指定clang -Xpreprocessor -fopenmp -I/opt/homebrew/opt/libomp/include -L/opt/homebrew/opt/libomp/lib -lomp main.cpp如果你用CMake可以這樣引入find_package(OpenMP REQUIRED) if(OpenMP_CXX_FLAGS) set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}) endif() if(OpenMP_CXX_LIB_NAMES) set(CMAKE_LINKER_FLAGS ${CMAKE_LINKER_FLAGS} ${OpenMP_CXX_LIB_NAMES}) endif()這一塊很容易被IDEA類工具自動(dòng)處理但你要是手寫編譯命令必須留意-lomp是否被正確鏈接。6. 讓調(diào)試體驗(yàn)更順手從環(huán)境變量到高級(jí)調(diào)試技巧當(dāng)基礎(chǔ)鏈路通了之后剩下的就是優(yōu)化體驗(yàn)。這里分享幾個(gè)我日常高頻使用的小技巧它們不會(huì)改變功能但能顯著提升效率。6.1 配置環(huán)境變量而不污染全局很多項(xiàng)目需要一個(gè)特定的環(huán)境變量才能跑起來(lái)但你又不想在~/.zshrc里寫死。VS Code里可以通過(guò)launch.json的env字段來(lái)注入env: { LD_LIBRARY_PATH: /opt/homebrew/lib, MY_CUSTOM_FLAG: 1 }注意macOS里沒有LD_LIBRARY_PATH運(yùn)行時(shí)動(dòng)態(tài)庫(kù)搜索路徑是DYLD_LIBRARY_PATH但這個(gè)變量在調(diào)試會(huì)話里經(jīng)常受到System Integrity ProtectionSIP的限制。通常更可靠的方式是把動(dòng)態(tài)庫(kù)路徑硬編碼到二進(jìn)制里用install_name_tool或者編譯時(shí)指定-rpath。比如clang -g main.cpp -L/opt/homebrew/opt/libomp/lib -lomp -Wl,-rpath,/opt/homebrew/opt/libomp/lib -o main這樣做的好處是你雙擊運(yùn)行或者調(diào)試時(shí)都不用擔(dān)心環(huán)境變量缺失。6.2 條件斷點(diǎn)、日志斷點(diǎn)與數(shù)據(jù)斷點(diǎn)除了基礎(chǔ)的斷點(diǎn)LLDB和CodeLLDB還支持幾個(gè)高級(jí)斷點(diǎn)類型條件斷點(diǎn)在斷點(diǎn)列表里右鍵設(shè)置條件表達(dá)式比如x 5。只有條件滿足時(shí)程序才會(huì)暫停。這對(duì)循環(huán)里定位特定迭代很有用。日志斷點(diǎn)打印日志但不中斷執(zhí)行。適合觀察變量變化比如在循環(huán)里x每次變化就打一條日志避免了手動(dòng)printf然后刪除的繁瑣。數(shù)據(jù)斷點(diǎn)監(jiān)控一塊內(nèi)存地址當(dāng)它被寫入或者修改時(shí)觸發(fā)暫停。這在排查野指針和內(nèi)存越界時(shí)非常有效。CodeLLDB里可以先在調(diào)試時(shí)觀察某個(gè)表達(dá)式然后右鍵Add Watchpoint。這些技巧最直接的收益是當(dāng)你面對(duì)一個(gè)狀態(tài)異常的程序時(shí)不需要在無(wú)數(shù)個(gè)點(diǎn)和日志里來(lái)回切直接讓工具替你篩掉無(wú)關(guān)信息。6.3 結(jié)合單元測(cè)試跑快速驗(yàn)證工程規(guī)模一大頻繁用F5啟動(dòng)整個(gè)程序來(lái)調(diào)試新功能并不現(xiàn)實(shí)。更合理的做法是讓項(xiàng)目里的單元測(cè)試作為調(diào)試入口。如果你的項(xiàng)目用了Google Test或Catch2你可以在tasks.json里加一個(gè)單獨(dú)的任務(wù)只構(gòu)建測(cè)試目標(biāo)然后在launch.json里新配置一個(gè)Debug Unit Tests會(huì)話program指向測(cè)試二進(jìn)制。配好之后遇到新代碼邏輯問題直接F5跑相關(guān)測(cè)試用例比每次都啟動(dòng)完整程序要快一個(gè)數(shù)量級(jí)。7. 實(shí)例演示一個(gè)帶命令行參數(shù)的簡(jiǎn)單項(xiàng)目從編碼到調(diào)試全流程講了這么多配置我直接用一個(gè)小例子把完整流程串起來(lái)方便你邊看邊操作。假設(shè)我現(xiàn)在想寫一個(gè)計(jì)算斐波那契數(shù)列的程序并且希望通過(guò)命令行傳入項(xiàng)數(shù)。項(xiàng)目結(jié)構(gòu)fibonacci/ ├── .vscode/ │ ├── launch.json │ └── tasks.json ├── CMakeLists.txt └── main.cppmain.cpp#include iostream #include cstdlib int fib(int n) { if (n 1) return n; return fib(n-1) fib(n-2); } int main(int argc, char** argv) { if (argc 2) { std::cout Usage: fib number std::endl; return 1; } int n std::atoi(argv[1]); std::cout fib( n ) fib(n) std::endl; return 0; }如果你走單文件編譯路線tasks.json保持之前的寫法即可。如果你用CMakeCMakeLists.txt用上面的模板就可以。調(diào)試時(shí)在launch.json里增加{ type: lldb, request: launch, name: Debug fib, program: ${workspaceFolder}/build/main, args: [10], cwd: ${workspaceFolder}, preLaunchTask: build cmake }這里要注意program指向的是CMake構(gòu)建目錄build里的產(chǎn)物。按F5之后窗口左下角調(diào)試控制臺(tái)會(huì)出現(xiàn)程序輸出和退出碼最后你在fib函數(shù)內(nèi)部打上斷點(diǎn)就能看到遞歸調(diào)用的每一步參數(shù)和局部變量。如果你直接在這個(gè)例子里遇到斷點(diǎn)在遞歸深處不命中的困惑回到第5章的排查鏈路大概率是優(yōu)化等級(jí)開高了。8. 收尾之前給新接觸M1 Mac調(diào)試C環(huán)境的你幾條心法配置C調(diào)試環(huán)境這件事本質(zhì)上是在協(xié)調(diào)編譯器、調(diào)試器、插件和工程結(jié)構(gòu)之間的關(guān)系。M1芯片的出現(xiàn)把這個(gè)協(xié)調(diào)過(guò)程要求的前提從以為只有一個(gè)CPU架構(gòu)升級(jí)到必須理解架構(gòu)差異。所以我不建議你指望一份萬(wàn)能配置一勞永逸而是建議你理解幾個(gè)關(guān)鍵點(diǎn)第一任何教程都要帶著架構(gòu)意識(shí)去看。文中如果還是/usr/local開頭的路徑大概率是為Intel Mac寫的。在M1上優(yōu)先看/opt/homebrew和原生arm64相關(guān)的描述。Homebrew的安裝路徑直接反映了架構(gòu)這比報(bào)錯(cuò)信息還可靠。第二能用Apple Clang和CodeLLDB的組合就先不要折騰GCC和GDB。LLDB的操作邏輯雖然和GDB有細(xì)微差別但它和macOS系統(tǒng)的契合度遠(yuǎn)超GDB。我在M1上調(diào)試C兩年多的經(jīng)驗(yàn)里L(fēng)LDB幾乎沒有遇到過(guò)讓人束手無(wú)措的問題GDB的兼容性就比較吃力。第三遇到問題先驗(yàn)證工具鏈本身再懷疑配置參數(shù)。你可以在終端里手動(dòng)編譯一個(gè)最簡(jiǎn)單的hello world用lldb手動(dòng)跑一遍確認(rèn)這個(gè)鏈路是通的之后所有的報(bào)錯(cuò)就都指向配置文件或者工程代碼而不是底層環(huán)境壞了。這種二分法排查方式是效率最高的因?yàn)榕渲脜?shù)再怎么錯(cuò)你不會(huì)懷疑到底層工具。我最初在M1 Mac上配調(diào)試環(huán)境的時(shí)候花了整整一個(gè)晚上才搞清楚為什么某個(gè)網(wǎng)上教程里g命令能用、但VS Code的tasks調(diào)用同一命令卻失敗——其實(shí)就是VS Code的集成終端沒有繼承我~/.zshrc里的PATH。后來(lái)我在settings.json里顯式指定了編譯器絕對(duì)路徑這個(gè)問題就再也沒出現(xiàn)過(guò)。配置上的小問題往往不是不對(duì)而是不在同一個(gè)環(huán)境上下文里。你只要時(shí)刻記著終端環(huán)境、VS Code任務(wù)環(huán)境、調(diào)試會(huì)話環(huán)境是三個(gè)不同的世界排查思路就會(huì)清晰很多。希望這篇偏實(shí)戰(zhàn)向的分享能在你的M1 Mac上少繞幾個(gè)彎。如果在配置過(guò)程中遇到這里沒覆蓋到的報(bào)錯(cuò)歡迎留言我盡量根據(jù)我踩過(guò)的坑給你出出主意。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
AV在线免费播放| 黄色激情五月天| 国产日比| 色婷婷丁香五月高清在线| 国产精品扒开腿做爽爽爽A片唱戏| 天天 青草 丝袜制服 在线| 成人免费视频一区| 影音先锋91网站在线观看| 99爱免费视频| 午夜精品777| 人人操婷婷| 成人精品人妻| 婷婷五月天精品| 色色五月天丁香婷婷| 99视频只有精品| 一区二区三区视频| 五月婷婷m| 丁香婷婷五月人体| 97夫妻超碰| 9久热在线视频精品| 激情五月深爱五月观看| 婷婷午夜精品久久久| 99在线免费观看| 激情视频综合| 五月天激情亚洲| 91精品久久久久| 激情五月天.色网| 欧美va在线| 毛片毛片毛片毛片| 色欲天天综合| 色色免费网战视频| 亚洲综合婷婷六月丁香五月| 丁香五月天天| 美女天天久久| 五月天色婷婷激情综合| 九九碰九九爱97超碰| 亚洲传媒在线观看| 在线免费观看激情视频| 久婷婷久草| 久久久网站| 丁香五月综合婷婷| 丁香婷婷激情| 九色无码| 色综合久久88色综合天天99| 99精品在线观看视频| VA婷婷亚洲| 91在线视频综合| 99婷五月| 97干在线免费| 99热在线看| 99热99精品在线观看| 天天干,夜夜爽| 五月丁香色婷婷久久| 99热无码精品| 婷婷五月伦理| 色综合激情| 五月丁香六月婷婷中合网| 9l视频自拍九色9l视频自拍九色9l社区| 高清a片基地| 午夜成人片400| 99在线精品视频| 丁香婷婷激情| 精品热青草| 色九九综合色| 婷婷伊人綜合| 97香蕉碰碰人妻国产欧美| 狠干综合| 超碰在线人妻| 天天做天天双| 婷婷五月天激情基地| 五月天激情视频网站| 丁香六月狠狠干| 密臀av无码人妻精品| 欧美色偷偷大香| 99re资源在线视频导航| 99re青青草| 亚洲在线成人| 五月激情啪啪| 丁香婷婷射| 久久精品小视频| 午夜九九电影| 欧美影院| 亚洲成av人影院| 成人做爰高潮A片免费视频 | 天天日天天久久青青| 最近免费中文字幕大全高清大全1| 日本不卡一区二区三区| 色欲色香,www,com| 五月丁香婷婷综合网| 亚洲国产婷婷色五月| 亚洲成人综合在线| 丁香六月婷月91婷月| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | www99精品亚| 激情婷婷五月天丁香| 婷婷五月激情五月丁香五月| 97色色婷婷五月天| 五月丁香亚洲校园欧美| 久久婷婷五月综合色丁香| 人妻操逼视频| 欧美婷婷| 色欲色香综合网| A片试看50分钟做受视频| 色色综合网www| 日韩久综合| 婷婷五月激情的图片| 亚洲五月丁| 五月情色天| 五月天堂婷婷| 96精品国产综合久久久久久| 亚洲在线操| 五月婷久草| 日本三级大片| 狼友视频在线观看18| a网站免费观看| 1024欧美看片| 无码一区二区三区四区五区| 激情综合国产| 五月婷婷丁香| 99精品视频在线观看免费| 五月婷婷激清网| 婷婷五月色综合| 久久久久9999| 就要爱综合| 视频色色色色色色| 欧美色激情四射| 久久92| 激情丁香社区| 婷婷开心久久| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 久久狠婷婷| 久久久妻人人人| 五月天成人网在线观看| 久婷婷视平| 激情综合五月天| 激情五月天色婷婷| 久综合4| 久久综合激情| 五月天最新网| 婷婷五月综合免费在线| 五月天婷婷婷| 国产精品扒开腿做爽爽爽A片唱戏| 98色花堂98t.R| 亚洲色域网| 久久激情五月婷婷| 夜夜操夜夜爽| 性一交一乱一交A片久| 色哟哟精品| 激情五月天开心总和网| 色噜噜狠狠色综无码久久合欧美| 日韩成人五月天| 99久久婷| 久久视这里只有精品| 国产美女视频久| 丝袜熟女一区二区三区| 狠狠做深爱婷婷久久综合一区| 国产在这里只有精品| 亚洲av另类在线观看| 色婷婷五月天激情久久| 屁股翘好撅高迎合跪趴| 色五月成人在线| 中国女人做爰A片| 婷婷丁香五月精品| 9色资源在线| 五月丁香亚洲校园欧美| 欧美成人精品A片免费一区99| 九九五月天| 99re在线视频| 国产片天天爽夜夜爽| 99亚洲精品视频| 亚洲无码性爱| 9九色首页| 欧美精品A片一区在线观看| 99av视频| 国产精品成人AV在线| 玖玖爱综合网| 99色丁香婷婷综合网| 青草视频在线观看视频| 天天插AV丝袜中| 怡红院AV亚洲一区二区三区H| 五月丁香999| 公的粗大挺进了我的密道| 天天天操天天天爰| 久久综合丁香激情五月| 五月婷色丁香| 婷婷伊人綜合中文| 丁香五月婷婷六月| 天天干天天射综合网| 丁香婷婷五月香蕉91| 色九九综合| 97在线精品| \\五月天婷婷激情| 综合玖玖偷拍| 五月婷婷六月天| 欧美超碰人人| 专区无日本视频高清8| 色。 日日日| 嫩草AV久久伊人妇女超级A| 五月婷婷久久综合| 久久中国毛毛片爱久久| 久久久五月天| 久久精热| 丁香五月婷婷动漫视频| 色综合视频| 亚洲中文字幕AV| AV在线观看网站| 开心五月激情网| 天天xxxxxx天天日| 久99热在线观看| 狠狠色噜噜狠狠狠狠综合| 热99视频| 欧美色图45678| 九九在线视频| 日日干夜夜干| 97婷婷五月天| 五月丁香婷婷国产精品综合| 婷婷五月天性爱视频| 97丁香婷婷| 色五月视频无码播放| 大香蕉七区| 超碰人妻在线| 粉嫩av蜜桃av蜜臀av| 婷婷热婷婷色| 激情五月天色色| 日日干四虎| 亚洲乱码w在线观看| 色综合色综合色综合高潮| 碰人人操| 91操女| jiZZdr| 99性色| 婷婷丁香五月天色播网站| 婷婷五月综合中文字幕| 粉嫩AV久久一区二区三区| 99热1| 色婷五月| 噜一噜免费视频| 色碰97| 粉嫩av蜜桃av蜜臀av| 激情色情五月天| 伊人久久艹| 男人的天堂99| 日韩成人无码| 风流少妇A片一区二区蜜桃 | 五月天无码视屏播放| 激情五月丁香五月综合| 少妇AB又爽又紧无码网站| 久9视频免费播放| 99 热国产在| 久久99久久久| 98永久精品| 2050人人操免费工开爱 | 色狠狠色噜噜AV天堂五区| 26uuu欧美| 日本五月视频| 五月丁香婷婷激情视频| 五月婷婷久草在线视频综合| 五月激情网综合| 5月丁香婷婷| 99热碰碰| 大香蕉婷婷五月天| 人人爱操| 日本va欧美va精品发布视频| tingting五月天亚洲| 日韩美女羞羞网站在线观看| 色色九九五月天| 婷婷色五月大香蕉在线| WWW.五月com| 91精品刘玥| 五月天激情国产综合婷婷婷| 色天堂婷婷| 九九视频在线观看视频6 | 99热99在线| www.婷婷五月天| 丁香六月狠狠干| www.婷婷.com| 激情综合网激情五月天| 国产精品久久久久久久久久| 九九婷| 九热...av| 国产精品色| 丁香六月啪| 开心激情播播五月天| 色丁香五月婷婷婷| 激情www.98com| 婷婷色日本| 五月婷人妻| 天天肏天天插| 噜噜网免费视频| 色五月 五月婷婷| 五月丁香六月激情| 亚洲五月婷婷| 91大操| 婷婷丁香五月视频| 91久久综合亚洲鲁鲁五月天| 亚洲综合色网站| 天天日人人| 伊人狠狠综合| www.超碰在线| av操B网站| 六月婷婷最新网址| 婷婷激情肏屄网| 婷婷5月天av| 掩去也综合五月视频| 日日天天操| 婷婷五月伦理网站| 五月天激情网图片| 99久久五月天| 四五月婷婷| 色五月丁香五月| 亚洲色频| 熟女啪啪视频| www.丁香黄色五月天人与| 久久a热| 丁香五月性| 久月久在线视频| 97热九九| 日日操,夜夜爽| 夜夜大香蕉婷婷丁香| 亭亭玉月丁香| 综合99久久天天综合| 色色五月天丁香婷婷| 欧美天天综合网站上去吧| 色五月天成人| 99久久婷婷国产综合精品电影| 婷婷五月天丁香社区| 六月婷婷俺也去| 六月综合在线| 五月丁香综合精品欧美| 99rewww| 九九色综合九九色| 久久综合九色综合97婷婷| 婷婷六月综合| 亚洲成人va| 色播五月丁香| 美欧日韩国产成人在战| 天天爱天天做天天| 午夜]香婷婷深深爱| 久久这里只有精彩| 综合另类视频| 国产.亚洲.欧洲视频在线| 秋霞网在线观看理论91| 色五月av| 日本三级大片| 婷婷五月天激情文学| 青青草婷婷久久| 99久久思思| 国产免费一区二区在线A片视频| 久久久99精品免费观看| 丁香五月天欧洲在线| 国产精品视频免费看| 色婷婷综合久久| 激情丁香婷婷五月天| 五月天婷婷丁香导航| 91九色PORNY大屁股| 婷五月丁香俺| 人人做天天爱| 婷婷色婷婷| 久久99精品日本| 天天天天天天噜| 少妇被躁爽到高潮无码文| 99精品激情| 婷婷开心五月| 五月综合丁| 色色色色色色色色综合网| A片试看120分钟做受图片| 中海油常州环保涂料有限公司| 九九人人精品| 激情九月综合| 久热只有精品| 梁铮版蜘蛛女在线观看| 超pen个人视频97| 五月婷婷色播视频| 国产精品国产成人国产三级| 丁香五月激情婷婷激情| 亚洲狠9| 日日操,天天操| 日韩99无码| 五月婷婷九月婷婷九月婷婷| 五月香蕉网| 婷婷伊人网| 中文字幕无码成人电影| 一区二区免费看| 国产综合色婷婷精品久久| 91色逼| 综合色五月| 久久五月视频| 婷婷5月天av| 天天日天天久久青青| 婷婷五月丁香五月天| 北条麻妃九九九国产精品视频| 大地资源色婷婷视频在线| 97综合视频在线| 丁香五月六月婷婷怡红院| 激情婷婷99| 久久久久久97| 婷婷激情五月天在线视频| 99网| 欧洲一区二区| 思思99精品视频在线观看| 中字幕视频在线永久在线观看免费| 婷婷基地五月色| 激情骚五月| 丁香六月婷婷综合| 五月天激情综合网俺也去| 激情网五月天| 久久丁香综合| 激情五月综合色婷婷| 午夜AV网| 另类专区在线观看| www.com五月天| 久99视频在线观看| 五月桃花网综合| 热99精品视频| 久久狠狠欧美| 色婷婷综合在线| 六月婷婷色综合| 亚洲天堂AAA| 亚洲无码成人网| 91狠狠综合久久| 天天草比天天爽| 日韩成人中文字幕| 碰久久精品w| 亚洲综合久| 色婷丨日丨天丨综合久久| 99 福利 导航| 9久热精品在线视频| 婷婷五月天狠狠色| 丁香婷婷久久综合在线| 狠狠舔| 激情丁香五月| 97超碰免费超级在线观看| 日韩人妻无码精品| 天天操夜夜橾| 五月丁香六月婷婷免费| 4399在线观看免费毛片| 97luluse| 亚洲精品无码一区二区| 激情五月天色色网| 久色激情| 成人开心五月天| 五月综合激情图片| 无码四色色色| 综合大香蕉| 国产真实乱了老女人视频| 性综合网| 婷婷五月色情天| 天天上天天爽| 伊人久久激情图区五月| 大香蕉婷婷| 97婷婷在线| 国产精品久久欧美久久一区| 99婷婷| 五月天综合久久| 五月天成人手机在线视频| 九九伊人网| 亚洲成人在线综合| 99草在线免费观看视频| 狠狠操狠狠色| 激情久久伊人| 99丁香婷婷综合网| 九九精品大香蕉| 亚洲无AV在线中文字幕| 激情婷婷五月天| 91精品综合久久久久久五月丁香| 久操大| 丁香五月伊人| 天天爱天天操| 综合99久久天天综合| 人妻久久久久久久 | 色墦五月丁香| 99无码视频| 九九热在线99| 99在线视频播放| 九九视频在线观看| 婷婷99中文字幕| 伊人网啪啪| 色婷婷精品视频| 香蕉人在线香蕉人在线 | 色婷婷五月天偷拍| 成人视频在线免费播放| 五月停亭六月,六月停亭的英语 | 亚洲乱码精品久久久久..| 99精品在线| 五月天婷婷在线观看| 噜噜五月天综合| 久久久久er热| 99热99艹在线观看| 日本久碰| 成人av中文字幕| 六月婷婷最新网址| av色婷婷| 婷婷永久在线| 婷婷六月丁香五月| 激情www| 丁香婷婷六月激情综合| 丁香五月婷婷激情蜜桃| 狠狠干思思热| 精品99在线| 久久久久9| 狼人久草| 婷婷色色网站| 色色激情五月| 欧美在线视频99| 狠狠人妻久久久久久综合丁香| 伊人狠狠干| 天天干电影| 婷婷五月丁香基地| 激情五月四色| 玖玖在线视| 开心深爱五月天| 五月亭亭综合五码| 婷婷色在线观看| 国产美女无遮挡裸体毛片A片| 日日夜夜亚洲一区| 99久久久99久久91熟女| 思思久热| 五月天成人免费视频| 婷婷五月丁香亚洲| 人人人操 超碰| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 丁香综合日产精品久久| 99热费观看| 六月丁香啪| 99热99热在线| 丁香六月激情| 狠狠色丁香婷婷久久综合| 超黄亚洲瑟瑟网站| 天堂综合久| 99精品成人无码A片观看金桔| 五月伊人91| 超碰人人射| 亚洲丁香五月在线观看| 性综合网| 91艹人| 五月婷婷综合色啪首页| 欧美在线视频99| 嫩草视频| 五月天自拍网| 激情www| 亚洲自拍天堂| 色色免费网战视频| 精品国产乱码久久久久夜深人妻 | 日本va欧美va欧美va| 日韩婷婷| 九月激情综合| 中文av网站| 琪琪布丁香社区激情五月天| 婷婷五月丁香基地在线视频官网| 五月激情综合网| 97色 五月天丁香| 日韩三级片一区二区| 丁香五月天视频| 国产精品天天狠天天看| 丁香五月天天哦| 激情五月天网站| 五月综合激情啪啪啪啪啪| 色情五月天视频网| 99热18| 日本久草福利| 丁香五月手机在线| 五月天婷婷丁香人人操91| 亚洲精品国产成人AV在线| 夜夜躁爽日日| 亚洲色图啪啪| 久久久.www| 人人爽人人爽人人爽人人爽| 五月天偷拍| 五月丁香久久| 久久丁香五月天| 九九色综合网| 五月天播播| 午夜福利8055| 色五月激情网| WWW,五月| 久久激情五月| 97碰啪啪| 久久九九网| 亚洲中文无码成人| 99re在线播放| 五月丁香啪啪拍| 中文字幕在线免费观看视频| 色综合xx| 成人网在线观看视频| 99re思思热这里| 99ER热精品视频| 伊人超碰| 美女被肏网站在线看| 草做免费在线观看| 黄页免费一级视频懂色| 欧美激情综合色综合啪啪五月| 欧美日韩五月婷婷| 91人人爽狠狠狠| 第四色婷婷日本| 日本不卡中文字幕| 久久这里只有精品07| 天天插天天射| www夜夜操comwww| CAOBIBI| 日韩高清成人| 色婷婷狠狠干| 色综合激情图区| 五月丁香啪啪综合| 97碰啪啪| 九九色色| 综合久久六月| 欧美色99| 青青草视频免费观看| 婷婷六月激情在线视频| www.色婷婷.com| 色播丁香| 久久这里有精品视频在线免费观看| 色色网91| 另类激情综合| 丁香六月婷婷综合在线| 五月婷婷深深爱| 婷婷五月天色色| 激情五月婷婷综合色播小说| a九九热www| 五月丁香狠狠爱| 丁香婷婷六月在线资源观看| 五月丁香香蕉| 狠狠色情婷婷| 婷婷六月综合| 久久综合九色综合97婷婷| 俺去也五月天| 五月婷伊人| 色婷婷五月成人网| 伊人激情AV一区二区三区| www,26uuu,c0m,色情| 国产免费AV在线| 九九99九九精品免费| 婷婷综合亚洲| 开心婷婷五月中文字幕组| 超碰com| 婷婷欠久少妇| site:pnnrt.com| 婷婷五月丁香网| 久久之人妻| 91在线观看www| 五月丁香免费视频| 婷婷色五月色| 天天舔天天摸天天射| 日本久久超碰| 五月天婷婷激情六月久久 | 五月激情小说| 日本精品99| 草做免费在线观看| 97色色色色色色色| 激情内射人妻1区2区3区| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 久久综合干| 色婷婷九月| 久久婷婷五月国产激情综合片| 丁香色情五月综合激情| 爱久久小说下载网| 久久九九免费视频| 久热欧美| 五月丁香六月婷婷无码| 99精品爱| 五月丁香六月激情综合啪啪| 丁香六月婷婷| 色欲av伊人久久大香线蕉影院| av五月丁香| 99国产精品久久久久久久久久久 | 五月停停丁香| 狠狠色丁香99| 婷婷五月天AV激情| 热久久成人| 特黄三级片| 天天噜| 天天婷婷| 熟女激情五月天 | se婷97| 亚洲av电影在线| 9国产在线视频| 亚洲V国产V欧美V久久久久久| 99这里只有精品视频| 91色噜噜狠狠狠狠色综合| 色五月激情五月天| 日本VA视频| 久久婷婷六月综合| 亚洲婷婷五月天激情| 五月开心深深爱激情综合| se99在线| 丁香婷婷综合激情五月色| 先锋av性爱成人电影| 99色一| 就爱射中文字幕资源网| 五月花丁香婷婷| 狠狠色精品综合| 五月丁香花婷婷玉莉AV| 99精品福利视频| 亚洲视频色婷婷| 久人操| 乱码操操| 色婷五月| 99干免费视频| 久操人| www999日韩精品| 超碰免费人人| 五月熟妇婷婷久久| 天天日日爽| 日本va欧美va国产激情| 99在线观看精品视频| 26.uuu丁香五月婷婷| 99久在线精品99re8| 99热这里只有精品8| 色婷婷成人做爰A片免费看网站| 日本熟妇乱妇熟色A片蜜桃| 人妻无码视频网| 极品五月天| 26UUU欧美激情一区二区| 久久狠狠欧美| 久色中文| 手机免费福利视频| 99在线观看亚洲| 色婷婷丁香五月观看| 永久地址 色| 婷婷噜噜| 天天操夜夜操| 精品自拍99| 97在线/亚洲| 成久综合视频| 激情开心五月天婷婷基地丁香社区| 人人草人人看| 五月色综合| 婷婷丁香综合在线| 婷婷五月激情四月综合| 五月激情婷婷开心| 97色婷婷| 久碰久| 五月婷婷干干干| 精品,99| www.久久99| 色九月综合| 亚洲成人网无码| 亚洲色情网站| 91超级碰碰碰| 97碰碰视频| 五月天激情AAAA| 色玖玖综合网| 97在线天堂| www.婷婷网| 五月综合色| 91精品综合久久久久久五月丁香| 丁香婷婷久久五月天| 丁香九月婷婷| 亚洲五月天另类小说图片| 熟妇内谢69XXXXXA片| 久久久婷婷五月亚洲97号色| 中文网av| 91狠狠综合久久久| 婷婷五月电影| 亚洲av骚货| 色色网站毛片| 久久五月天激情婷婷| 婷婷五月在线观看| 91大屁股在线| 中文不卡一二三区| 激情色色色| 色婷婷a| 狠狠色婷婷777| 国外亚洲成AV人片在线观看| 午夜婷婷丁香| 另类激情五月| 国产裸舞表演WWWW| 精品久久久91久久影视网| 思思99热这里只有精品| 色色无码| 亚洲AV无码一区二| 99在线精品视频免费观看20| 免费视频WWW在线观看网站| 五月香婷婷| 99丁香五月婷| 色情婷婷。| 五月天色区| 91在线看片| 99久久婷婷五月天| 九月婷婷在线视频| 久99久热只有精品国产99| 超碰九色| 天天拍夜夜撸| 六月丁香网| 99热精品网| 性爱视频久久| 五月丁香婷婷国产精品综合| 北京熟妇搡BBBB搡BBBB| 久久五月天婷婷视频| 五月天色社区| 狠狠色婷婷7| 婷婷五月色| 欧美在线骚货| 婷婷在线视频| 激情综合女人网五月播播| 日韩视频99| 五月丁香六月婷婷啪啪| 久久久久9| 五月天日日操夜夜操| 久热9| 天天爽爽日日做做| 五月丁香激情综合网| 99视频自拍| 五月天色不卡| 人妻五月天激情开心网| 99精品免费| 五月婷婷插一插| 色婷婷色丁香色欲av| 天天摸天天透天天舔| 97久人人| 人人操AV| 亚洲五月婷天天操| 涩丁香91| 欧美日本黄色| 激情综合婷婷| 国精产品一区一区三区免费视频| 五月开心婷婷| 99人人看| 99re在线观看| 五月永久激情| 97碰碰草| 丁香九月综合| 色色婷| 甈你aaaaa| 综合网狠狠| 天天日天天爽| 婷婷激情丁香六月| 久艹大香蕉| 色综合久久久久| 五月丁香六月婷婷亚洲视频| 蜜桃婷婷狠狠久久| 狠狠综合| 日本五月天婷婷丁香| 婷婷久热| 男女激情久久| 九九Av| 亚洲无码九九| 超碰成人av| 亚洲欧洲中文日韩久久AV乱码| 激情婷婷五月基地| 亚洲激情综合网| 狠狠色丁香乆乆| 男人天堂99| 四色女婷婷| 丁香婷婷五月六月久久| 色综合色色| 天天爽天天日天天舔| 91丨九色丨国产打屁股| 丁香五月婷婷影视先锋| 九九伊人网| 婷婷日日夜夜| 99re这里只有精品国产99| 99ri国产精品| 国产肥白大熟妇BBBB视频| 五月天激情小说| 热99视频| 99热久| aaa9区免费在线观看| 国产一区二区三区影院| 五月婷婷五月天| 婷婷伊人网| 99热热热天天人人人超超碰| 色五月视频,小说| 日韩啪啪视频| 色五月婷婷青娱乐| 欧美日韩中文国产一区发布| 久久网日本| 天天操天天干天天日| 国产这里只有精品| 九色在线五月婷婷网址| 97人人干人人操| 人人草人| 色婷婷电影网| www99在线观看视频| 蜜桃五月天色| 91操碰| 人人操人人操919999| 色婷婷九月综合| 色婷五月天| 91色色色视频| 婷婷五月激情基地| 二色AV| 日韩免费99| 丁香五月 六月婷婷首页| 日本久久99| 五月天社区婷婷丁香社区| 欧美英丁香开心快乐六月天网| 色婷婷五月在线| 大香蕉人在线65| 久狠日av| 日韩av一区二区在线/日产精品久久久 | 久九男女天堂| 亚洲婷婷丁香五月在线| 久99视频在线观看| 丁香五月黄色| 丁香婷婷婷五月| 成人中文网| 免费的日逼视频| 天天色播| 99久在线| 97热在线精品| 婷婷五月丁香色综合| 亚洲色情在线| 99网址在线观看| 少妇久久诱惑视频| 公的粗大挺进了我的密道| 99热伊人| 91九色精品女同系列| 色婷在线视频| 激情综合五月开心狠狠| 欧美精品在线观看| 伊人丁香五月| 婷婷五月成人| 五月婷婷大香蕉| 99视频精品全部观看10| 久久久潮喷-久久久九九-成人AV| 九九成人高清视频| 99色在线观看| aaaaaa片| 免费视频WWW在线观看网站| 丁香五月六月久久综合 | 91超级碰碰碰| 五月婷婷色| 中文不卡一二三区| 天天色2017| 人人射人人高潮| 超碰不卡在线| 久色网| 亚洲视频在线观看99| 俺也去色| 五月婷网站| 色五月婷婷伊人| 99熟女视频| 97碰啪啪| 九九色逼| 色情五月天首页| 激情综合丁香六| 亚洲五月天婷婷在线| 在线播放成人| 五月综合视频| 久久婷婷五月丁香网| 99久在线精品99re8热| 久久久人妻久久久| 婷婷五月丁香五月| 婷五月天天| 国产欧美日韩综合精品一区二区| 天天爱天天做天天舔| 风流少妇A片一区二区蜜桃 | 久操干| 日本九九九九| 夜夜骑日日操| 色色色激情网| 亚洲色婷婷五月天| 九九综合| 国产欧美精品AAAAAA片| 五月丁香六月花| 成人一区在线观看| 婷婷射丁香| 26uuu国产色| 色婷婷丁香花五月天| 99性视频| 色狠狠综合入口| 激情五月婷婷综合| 天色综合网站| 色色色色色五月| 色五月六月| 毛片新网地| 五月丁香黄色| 五月天啪啪| 噜噜噜噜在线| 五月丁香毛片| 婷婷六月天| 日本熟女一区二区| 欧美精品久| 五月天婷婷丁香| 婷婷激情五月综合丁| 天堂爱啪啪| 二色av| 婷婷五月天开心网| 五月五婷婷网| 久久婷婷五月综合网| www.91操| 五月天成人在线| 大香蕉婷婷久久| AV九九| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 超碰AV在线| 日日操,天天操| 色五月婷婷在线| 欧美性猛交99久久久久99按摩| 五月婷综合| 888精品福利地址| 免费观看的婷婷五月视频在线| 激情综合丁香| 狠狠操狠狠| 99久在线精品99re5热视频| 日日干干天天干| 狠狠操狠狠爱| 丁香六月婷婷综合啪啪| www五月婷婷88导航| 九九这里都是精品| 在线只有精品| 亚州AV超碰人人操| 99亚洲综合| AV在线免费网站| 区啪精品| 色婷婷五月天av在线| 五月色综合| 97久久久久| 无码操B| 99性感视频| 精品网站99| 色5月婷婷| 激情视频91| 五月天伊人久久| 婷婷影院A成人| av九九| 97热这里只有精品| 九九久久99精品免费观看www| 久久人妻伦理| 久久这里有精品在线观看| 777.色色| 丁香亭亭久久| 五月丁香婷婷综合网| 久久9热| 成人一区在线观看| 六月色 亚洲| 99干免费视频| 五月婷婷六月激情| 日日躁夜夜躁狠狠久久AV| www.色婷婷| 天天搞天天爽| 草草视频91| 九月婷婷久久久| 99福利导航| 秋霞AV淫| h亚洲| 超碰国产AV| 婷婷色五天| 五月婷婷六月激情| 久热这里| 夜夜操狠狠操| 91九色精品| 色私五月婷婷| 超碰9| 97操在线视频| 大香蕉人妻| 26UUU欧美| 五月天桃色深爱网| 99色| 欧美激情性做爰免费视频| 综合五月天| 丰满少妇猛烈A片免费看观看 | 欧美狠狠草| 天天爽夜夜爽夜夜爽精| 99在线观看这里都是精品| 婷婷爱综合| 五月丁香在线婷婷蜜桃| 99热这里只有精品33| 五月色丁香激情| 久久综合激情婷婷激情| 深爱激情综合网| 色欲五月婷婷| 开心五月综合激情网| 丁香九月激情| 综合亚洲色色| 人妻五月天激情开心网| 99aese| 九九激情视频| 色五月五月婷婷| 五月婷婷熟女| 99热精品中文字幕| 五月丁香亭亭| 99热爆在线| 成人AV综合在线| 色综合天堂| 狠狠做六月爱婷婷综合aⅴ| 狠狠肏综合网| 人妻VideOssS人妻高清| 九九成人视频| 色综合色| 午夜精品人妻无码一区二区三区| 欧美婷婷丁香社区在线播放| 九月婷婷在线观看| 99热在线精品播放| ri电影在线| 人人草人人爱手机视频看看| 色色色综合色| 91碰碰| 超碰在线免费观看日韩| 碰超在线九色| 久九色| 色婷婷五月天激情综合| 久久九九免费视频| 亚洲激情在线| 国产做爰视频免费播放| 9一精品视频观看| 丁香色色网| 久香草视频在线观看| 九九这里有精品| 五月天另类激情在线| 超碰九热| 成人国产综合| 第四色婷婷五月| 猫咪伊人久久| 久久久国产精品黄毛片| 婷婷五月综合色中文字幕| 色婷婷久久| 亚洲色色精品| 美女网黄| 91色性感五月婷婷丁香| 超碰日日操| 国产美女精品| 超碰色综合| 韩国中文字幕91| 亚洲在线资源| 婷婷五月天亚洲综合网| xxxx久| 婷婷丁香九色| 伊人久久99| 色99热| 丁香六月婷| 婷婷五月天丁香久久| 欧美成人Va| 97色色色| 人妻内射一区二区在线视频| 操逼六区| 亚洲噜色| 五月天激情视频| 日韩精品电影| 天天插天天日天天爽| 色色激情五月| 99re8热精品免费视频| 婷婷中文字幕| 日本婷色| 色伊人91在线视频| 丁香五月婷婷啪啪| 橾逼网| 碰97 久| 色色99| 国产精品国产| 亚洲丁香婷婷| 久热这里有精品视频| 站长推荐无码播放| 中文字幕不卡网站| 欧日韩AV| 五月婷婷丁香| 色婷在线视频| www.亚洲激情| 高清一区二区三区日本久| 天天操加勒比| 直接看的AV| 日韩乱轮AV| 激情小说色五月| 影音先锋色婷婷| 亚洲六月婷婷| 婷婷五月综合社区在线| 激情五月婷婷欧美极品 | 91久久综合| jiqingliuyuetian| 清纯唯美 激情四射| 只有精品在线观看| 成人短视频在线| 人橾人| 亚洲色五月婷婷| 狠狠色中色| 日本五月天一页| 久久婷婷五月国产激情综合片| 欧美五月婷婷| 欧美日本不卡黄色片| 激情六月五月婷婷综合网| 丁香五月天激情视频| 999激情视频| 丰满人妻一区二区三区| 99热www| 婷婷综合色五月天| 婷婷在线中文字幕| 呦呦AV| 夜精品无码A片一区二区蜜桃| 久久久精品99亚洲综合| 成人日韩欧美| 先锋五月婷婷丁香草草| 婷婷激情视频| 精品99在线看| 色婷婷五月综合在线| 超碰人人99| 99视频只有精品| 99re青青草| 99亚洲视频| 久色88| 丁香五月天电影| 丁香六月婷婷色播| 思思热这里只有精品| 色播五月丁香综合| 五月天狠狠网| 久婷自拍视频| 综合五月天| 日本天堂爱爱| 99精品自拍| 九月丁香| 婷婷伊人网| 日本在线视频手机播放五月婷| 99热免费| 5月婷婷激情6月| 偷拍九九热| 久久一热| 丁乡久久| 五月色婷| site:pzdcoin.com| 成人综合网站| 天天爱天天做天天爽| 黄色激情网站在线观看| 一本久道综合色婷婷五月| 伊人大蕉香| 色色色地址| 99久热| 在线观看免费视频| 六月婷婷国产| 91大神在线免费看视频全集男男一起操| 丁香狠狠色婷婷久久无码视频| 国产精品视频网| 超碰在线免费| 3pAV| 99丁香五月| 色色射| 欧洲综合视频| 99热国产| 区区欧美你爱| Caop在线| 亚洲激情五月天| 操逼123网| 国产4P视频精品五区| 久操人妻| 五月丁香综合伦理片| 大香伊人婷婷影院| 九九热99熟女| 婷婷五月中文在线| 在线视频婷婷| 99re热在线观看| 无码一区二区三区四区五区| 免费91久久精品| 九九 激情 网| 九九热视频网站| 丁香五月婷婷操逼| AV在线大香蕉| 天天色,天天操,天天射| 九九久久免费视频44| 99久热这里只有精品| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 婷婷5月色| 99re久热| 99re思思热久久| 久久se 综合网| WWW免费视频碰碰碰碰| 色色网站观看| 激情婷婷综合网| 色色婷婷丁香| 2025色婷婷| 激情综合五月激情17| 亚洲成人丁香花| 婷婷丁香色五月| 丁香五月婷婷色播艳门照| 色综合婷婷| 99热99日天天干| 天天玩夜夜操| 伊人五月综合网|