(三) Trae 調試C++ 基本概念

調試C++基本概念

  • 一、調試基礎概念
    • 1.1 調試信息格式
    • 1.2 DWARF格式和PDB格式生成(圖解)
    • 1.3.典型工具鏈和調試信息
  • 二、各工具鏈深度解析
    • 1. Clang++ 與 G++ 的 DWARF 差異
  • 三 調試工具
    • 3.1 調試工具
    • 3.2 調試插件(Trae)

一、調試基礎概念

1.1 調試信息格式

格式類型適用系統存在形式
DWARFUnix-like 系統標準格式嵌入可執行exe文件
(或獨立.dwo文件 )
PDBWindows 專有格式獨立的 .pdb文件

1.2 DWARF格式和PDB格式生成(圖解)

編譯時生成
Linux/macOS
編:clang++ g++.exe
鏈:lld.exe
鏈:ld.exe
Windows 編:cl.exe clang-cl.exe
鏈:link.exe
源代碼
調試信息
DWARF格式
PDB格式
DWARF集成格式<在exe內部>
.PDB文件格式
調試器=調試文件
LLDB=DWARF-5
GDB=DWARF-4
調試器=調試文件
WinDbg=pdb文件
CDB=pdb文件

1.3.典型工具鏈和調試信息

c++編譯工具鏈有:

  1. MSVC(MsBuild.exe cl.exe link.exe)
  2. LLVM (三條線)
    2.1 支持msvc的 (ninja.exe clang-cl.exe + MSVC:link.exe)
    2.2 支持LLVM原生的(ninja.exe clang++.exe LLVM:lld.exe)
    2.2 支持MinGw的(ninja.exe clang++.exe + MinGw:ld.exe)
  3. MinGw (make.exe g++.exe ld.exe)

C++工具鏈表格:

工具鏈編譯器鏈接器調試信息典型調試器
MSVCcl.exelink.exe.pdb文件windbg.exe / CDB.exe / vs的IDE
LLVMclang-cllink.exe.pdb 文件WinDbg.exe
LLVMclang++lld.exeDWARF-5
(內嵌入exe)
LLDB.exe
LLVMclang++ld.exe未實踐過
MinGwg++ld.exeDWARF-4(2,3)
(內嵌如exe)
GDB.exe

補充:工具鏈來源

編譯工具鏈來源內容
MSVC安裝visual studio (vs_installer.exe 安裝時,選擇編譯安裝c++)cl.exe link.exe windbg.exe等
LLVM下載安裝:LLVM包clang++.exe lld.exe
clang-cl.exe
MinGw下載安裝MinGwg++.exe ld.exe等

簡單補一句:
clang-cl.exe 就是用來快速支持替換cl.exe的,他支持cl.exe的大部分命令行參數
基本可以認為是如此使用

cl.exe       main.cpp -o mian.exe
clang-cl.exe main.cpp -o main.exe

二、各工具鏈深度解析

1. Clang++ 與 G++ 的 DWARF 差異

g++.exe ld.exe
GIMPLE
GCC前端
Gold/BFD鏈接器
DWARF-4
clang++.exe lld.exe
LLVM IR
Clang前端
LLD鏈接器
DWARF-5

關鍵區別:
版本差異:LLVM 默認 DWARF-5(更緊湊),GCC 默認 DWARF-4
模板調試:Clang 保留完整實例化鏈,GCC 可能丟失中間層
跨平臺性:LLVM 生成格式在各平臺一致性更好

三 調試工具

3.1 調試工具

工具鏈調試格式調試器
MSVCpdbwindbg.exe
CBD(console debuger)
vs-IDE
LLVMDWARF-5lldb.exe
MinGwDWARF-4lld.exe

3.2 調試插件(Trae)

  1. Extension Pack for C/C++(KylinIdeTeam) 已經包含:
    1.1 kylin Clangd
    1.2 C/C++ Debug(gdb) – 因為這個,所以下載較慢
    1.3 CMake Intelli
    1.4 CMake Tool(fork)
    1.5 Kylin Native Debug
  2. CodeLLDB (vadimcn)

其中ColdeLLDB是用來調試LLVM原生的lldb.exe連接出來的程序.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/77161.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/77161.shtml
英文地址,請注明出處:http://en.pswp.cn/web/77161.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flink部署與應用——部署方式介紹

引入 我們通過Flink相關論文的介紹&#xff0c;對于Flink已經有了初步理解&#xff0c;這里簡單的梳理一下Flink常見的部署方式。 Flink 的部署方式 StandAlone模式 介紹 StandAlone模式是Flink框架自帶的分布式部署模式&#xff0c;不依賴其他的資源調度框架&#xff0c…

【智慧城市】新中地GIS開發實訓:基于 Vue 框架的武漢智慧旅游系統

首頁 地球自轉頁 控制臺頁 景點信息頁 天氣預報頁 路線規劃頁 查詢頁 AI問答頁 熱力圖頁 測量頁 來源&#xff1a; 【智慧城市】新中地GIS開發實訓&#xff1a;優秀學生項目作品&#xff08;58&#xff09;基于 Vue 框架的武漢智慧旅游系統

C++入侵檢測與網絡攻防之網絡嗅探以及ARP攻擊

目錄 1.tcpdump基本使用 2.tcpdump條件過濾 3.wireshark介紹 4.wireshark的介紹 5.tcp握手揮手分析 6.telnet服務的介紹和部署 7.復習 8.telnet服務的報文嗅探 9.網絡嗅探基礎 10.arp協議的解析 11.arp攻擊原理以及試驗環境 12.arp實驗以及防御方式 1.tcpdump基本使…

【數據可視化-28】2017-2025 年每月產品零售價數據可視化分析

&#x1f9d1; 博主簡介&#xff1a;曾任某智慧城市類企業算法總監&#xff0c;目前在美國市場的物流公司從事高級算法工程師一職&#xff0c;深耕人工智能領域&#xff0c;精通python數據挖掘、可視化、機器學習等&#xff0c;發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

系統與網絡安全------彈性交換網絡(3)

資料整理于網絡資料、書本資料、AI&#xff0c;僅供個人學習參考。 STP協議 環路的危害 單點故障 PC之間的互通鏈路僅僅存在1個 任何一條鏈路出現問題&#xff0c;PC之間都會無法通信 解決辦法 提高網絡可靠性 增加冗余/備份鏈路 增加備份鏈路后交換網絡上產生二層環路 …

廣州 3D 展廳開啟企業展示新時代?

為了突破傳統展廳的局限&#xff0c;滿足企業日益增長的展示需求&#xff0c;3D 展廳應運而生。3D 展廳是利用虛擬現實&#xff08;VR&#xff09;、增強現實&#xff08;AR&#xff09;和三維建模等先進技術&#xff0c;構建出的一個高度逼真的數字化展示空間 。它打破了傳統展…

C++初登門檻

多態 一、概念 多態是指不同對象對同一消息產生不同響應的行為。例如&#xff0c;藍牙、4G、Wi-Fi 對“發送數據”指令有不同的具體實現。 二、核心理解 本質&#xff1a;通過基類指針或引用操作子類對象&#xff0c;實現運行時動態綁定。 表現形式&#xff1a; 接口統一&a…

文件上傳詳細版

文件上傳造成因素&#xff1a; 文件路徑過濾不嚴格&#xff0c;可能通過遍歷目錄來獲得文件&#xff0c;也可能通過文件上傳對重要文件案進行覆蓋&#xff0c;還可能對文件拓展名和文件類型過濾不嚴格&#xff0c;可以上傳任意文件到web公開目錄上&#xff0c;進而遠程控制服務…

華為網路設備學習-19 IGP路由專題-路由策略

一、 二、 注意&#xff1a; 當該節點匹配模式為permit下時&#xff0c;參考if else 當該節點匹配模式為deny下時&#xff1a; 1、該節點中的apply子語句不會執行。 2、如果滿足所有判斷&#xff08;if-match&#xff09;條件時&#xff0c;拒絕該節點并跳出&#xff08;即不…

智能指針之設計模式4

前面的文章介紹了使用工廠模式來封裝智能指針對象的創建過程&#xff0c;下面介紹一下工廠類 enable_shared_from_this的實現方案。 4、模板方法模式 在前面的文章分析過&#xff0c;enable_shared_from_this<T>類是一個工廠基類&#xff0c;提供的工廠方法是shared_f…

【Nova UI】十、打造組件庫第一個組件-圖標組件(下):從.svg 到 SVG Vue 組件的高效蛻變?

序言 在組件庫開發的精彩旅程中&#x1f680;&#xff0c;我們已經成功打造并完善了圖標組件體系&#xff0c;賦予其強大的功能和豐富的表現力&#x1f389;。然而&#xff0c;隨著業務版圖的不斷擴張&#x1f310;&#xff0c;手動逐個編寫 SVG Vue 組件的傳統方式&#xff0…

Golang | 倒排索引

文章目錄 倒排索引的設計倒排索引v0版實現 倒排索引的設計 通用搜索引擎 v.s. 垂直搜索引擎&#xff1a; 通用搜索引擎&#xff1a;什么都可以搜索&#xff0c;更加智能化垂直搜索引擎&#xff1a;只能搜自家數據庫里面的內容&#xff0c;一般都帶著搜索條件&#xff0c;搜索一…

Windows 10 上運行 Ollama 時遇到 llama runner process has terminated: exit status 2

在 Windows 10 上運行 Ollama 時遇到 llama runner process has terminated: exit status 2 錯誤&#xff0c;可能是由多種原因引起的。以下是逐步解決方案&#xff1a; 1. 檢查 Ollama 服務狀態 按 Win R 輸入 services.msc&#xff0c;找到 Ollama 服務&#xff0c;確保其狀…

PCI 總線學習筆記(五)

PCI 總線學習系列&#xff0c;參考自 技術大牛博客&#xff1a; PCIe 掃盲系列博文連載目錄篇 書籍&#xff1a;王齊老師的《PCI Express 體系結構導讀》 下面的文章中加入了自己的一些理解和實際使用中遇到的一些場景&#xff0c;供日后查詢和回憶使用 PCI 總線定義了兩類配置…

Spring Cloud Alibaba VS Spring Cloud

??Spring Cloud Alibaba 與 Spring Cloud 組件對比? ??服務發現與注冊中心? 功能???Spring Cloud???Spring Cloud Alibaba?對比說明??核心組件?EurekaNacosNacos 支持動態配置管理、健康檢查更靈活&#xff0c;且提供 DNS 服務發現能力。????健康檢查??…

Java—— 常見API介紹 第五期

JDK8以后新增的時間相關類 Date類ZoneId&#xff1a;時區Instant&#xff1a;時間戳ZoneDateTime&#xff1a;帶時區的時間 日期格式化類 SimpleDateFormat DateTimeFormatter&#xff1a;用于時間的格式化和解析 日歷類 Calendar LocalDate&#xff1a;年、月、日LocalTime…

Java與Kotlin在Android開發中的全面對比分析

趨勢很重要 語言發展背景與現狀 Android操作系統自2008年正式發布以來&#xff0c;Java長期作為其主要的開發語言。這種選擇源于Java語言的跨平臺特性、成熟的生態系統以及廣泛開發者基礎。然而&#xff0c;隨著移動開發需求的快速演變&#xff0c;Java在Android開發中逐漸暴…

第一部分:git基本操作

目錄 1、git初識 1.1、存在的問題 1.2、版本控制器 1.3、git安裝 1.3.1、CentOS平臺 1.3.2、ubuntu平臺 2、git基本操作 2.1、創建倉庫 2.2、配置git 3、工作區、暫存區、版本庫 4、基本操作 4.1、場景一 4.2、場景二 4.3、修改文件 5、版本回退 6、撤銷修改 …

正則表達式與python使用

一、Python正則表達式基礎 1. 導入模塊 Python通過 re 模塊實現正則表達式功能&#xff0c;需先導入模塊&#xff1a; import re2. 核心語法 普通字符&#xff1a;直接匹配字面值&#xff08;如 a 匹配字符 a&#xff09;。元字符&#xff1a; \d&#xff1a;匹配數字&…

從FP32到BF16,再到混合精度的全景解析

筆者做過目標檢測模型、超分模型以及擴散生成模型。其中最常使用的是單精度FP32、半精度FP16、BF16。 雙精度"FP64"就不說了&#xff0c;不太會用到。 #1. 單精度、半精度和混合精度 單精度&#xff08;FP32&#xff09;、半精度&#xff08;FP16&#xff09;和混合…