Qt調試功能使用方法

QT編程環境

QT在Windows操作系統下的三種編程環境搭建。

方案編程環境編譯器調試器
1Qt CreatorMinGW GCCGDB
2Qt CreatorMicrosoft Visual C++ CompilerDebugging Tools for Widows
3Microsoft Visual Studio?VS自帶VS自帶

方案提及的QT安裝程序及壓縮包均能在官網Index of /official_releases下載到。

?Qt編譯器MinGW-32下載地址:Index of /development_releases/prebuilt/mingw_32

Index of /development_releases/prebuilt/mingw_64?Qt編譯器MinGW-64下載地址:Index of /development_releases/prebuilt/mingw_64

QT調試功能

一、基礎調試操作

  1. ?啟動調試?

    • 使用?F5?或點擊調試按鈕(綠色蟲子圖標)進入調試模式。調試前需確保項目為?Debug?版本,否則無法加載調試信息?。

    • 支持的調試器:Windows 平臺推薦 CDB(需安裝 Debugging Tools for Windows),其他平臺可選 GDB 或 LLDB?。
      GDB調試器:安裝MinGW后,對應的bin目錄下有gdb.exe文件。通過kit工具添加gdb

      CDB調試器:已經安裝過sdk(比如:win10系統),通過控制面板,找到window軟件開發包套件(如下),右鍵,再選擇“更改”,選擇Debuging Tools for Windows。


      安裝完畢之后,重啟Qt Creator就可以調試,如果不行,就通過kit工具添加CDB

  2. ?斷點管理?

    • 在代碼行號左側單擊設置斷點,程序運行到斷點時會暫停執行,可查看變量、調用棧等信息?。

    • 支持條件斷點和臨時禁用斷點?。

  3. ?單步執行與變量監控?

    • 使用?Step Into(步入)、Step Over(步過)、Step Out(步出)逐行跟蹤代碼邏輯?。

    • 在調試視圖中查看局部/全局變量,支持修改變量值進行動態測試?。


二、高級調試技巧

  1. ?調試動態庫(DLL)?

    • ?Attach to Running Application?:附加到已運行進程調試動態庫?。

    • ?Attach to Unstarted Application?:配置未啟動的應用程序進行調試?。

    • ?Start and Debug External Application?:直接啟動外部應用并調試其加載的動態庫?。

  2. ?處理程序崩潰?

    • 程序崩潰時,調試器會自動定位到崩潰位置,通過調用棧(Call Stack)回溯問題源頭,檢查變量值或指針是否異常(如野指針或越界訪問)?。

    • 常見錯誤分析:

      • Segmentation fault:內存訪問錯誤,檢查指針或容器越界?。

      • 0xc0000005:空指針調用,需驗證指針有效性?。

  3. ?調試子進程?

    • 在調試器設置中添加?set follow-fork-mode child(GDB)命令,自動附加到由?QProcess?啟動的子進程?。


三、調試配置

  1. ?調試 Qt 源碼?

    • ?MinGW/MSVC 配置?:安裝 Qt 源碼并配置調試符號路徑,支持單步進入 Qt 內部函數?。

    • 建議使用 Qt Creator 10.0.0+ 版本,內置代碼分析插件,對 CMake 項目支持更完善?。

  2. ?Release 模式調試?

    在?.pro?文件中添加編譯選項,如下,重新編譯生效?,生成調試符號后需清理舊構建文件(如?.pdb)。
  3. QMAKE_CXXFLAGS_RELEASE += -g QMAKE_LFLAGS_RELEASE = -g
  4. ?遠程調試(如嵌入式設備)?

    • 配置交叉編譯工具鏈,構建 ARM 版本程序后傳輸到目標設備,通過 Qt Creator 遠程附加調試?。

四、注意事項

  • ?版本兼容性?:確保 Qt Creator 版本與調試器及工具鏈匹配,避免功能缺失?。

  • ?調試符號?:調試第三方庫或系統組件時需安裝對應的調試符號包?。

  • ?資源清理?:修改調試配置后需執行?清理?→?qmake?→?重新構建,確保生效?。

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

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

相關文章

vulnhub靶場之【digitalworld.local系列】的mercy靶機

前言 靶機:digitalworld.local-mercy,IP地址為192.168.10.11 攻擊:kali,IP地址為192.168.10.6 kali采用VMware虛擬機,靶機選擇使用VMware打開文件,都選擇橋接網絡 這里官方給的有兩種方式,一…

Fiddler抓取App接口-Andriod/IOS配置方法

Andriod配置方法: 1)確保手機和Fiddler所在主機在同一個局域網中 2)獲取Fiddler所在主機的ip地址,通過cmd命令進入命令編輯器,輸入ipconfig -all,找到IPv4地址,記下該地址 3)對手機…

步進電機軟件細分算法解析與實踐指南

1. 步進電機細分技術概述 步進電機是一種將電脈沖信號轉換為角位移的執行機構,其基本運動單位為步距角。傳統步進電機的步距角通常為 1.8(對應 200 步 / 轉),但在高精度定位場景下,這種分辨率已無法滿足需求。細分技術…

C語言_數據結構總結2:動態分配方式的順序表

0——靜態分配內存的順序表和動態分配內存的順序表的相同之處和不同之處 相同之處 基本操作邏輯相同:無論是靜態分配還是動態分配的順序表,其核心的操作邏輯是一致的。例如插入操作都需要將插入位置之后的元素依次后移,刪除操作都需要將刪除…

Vue 與 Element UI 深度探秘:從 Array.isArray 到動態綁定的技術之旅!?

以下是一篇深入的技術博客&#xff0c;基于我們對 compare-form.vue 和 <w-form-select.vue> 的所有討論&#xff0c;涵蓋 Array.isArray、option-label/option-value、:list 動態綁定、: 語法以及 Vue 2/3 兼容性等問題。博客風格輕松有趣&#xff0c;加入 SVG 圖解和實…

計算機視覺|3D卷積網絡VoxelNet:點云檢測的革新力量

一、引言 在科技快速發展的背景下&#xff0c;3D 目標檢測技術在自動駕駛和機器人領域中具有重要作用。 在自動駕駛領域&#xff0c;車輛需實時、準確感知周圍環境中的目標物體&#xff0c;如行人、車輛、交通標志和障礙物等。只有精確檢測這些目標的位置、姿態和類別&#x…

前端打包優化相關 Webpack

前端打包優化相關 Webpack 打包時間的優化&#xff08;基于 Vue CLI 4 Webpack 5&#xff09; 1. Webpack 配置減少打包時間 1.1 對 JS 配置&#xff1a;排除 node_modules 和 src 中的打包內容 在開發環境下&#xff0c;修改 Webpack 的 JS 規則&#xff0c;排除 /node_m…

leetcode69.x 的平方根

題目&#xff1a; 給你一個非負整數 x &#xff0c;計算并返回 x 的 算術平方根 。 由于返回類型是整數&#xff0c;結果只保留 整數部分 &#xff0c;小數部分將被 舍去 。 注意&#xff1a;不允許使用任何內置指數函數和算符&#xff0c;例如 pow(x, 0.5) 或者 x ** 0.5 。…

Docker 部署 MongoDB 并持久化數據

Docker 部署 MongoDB 并持久化數據 在現代開發中&#xff0c;MongoDB 作為 NoSQL 數據庫廣泛應用&#xff0c;而 Docker 則提供了高效的容器化方案。本教程將介紹如何使用 Docker 快速部署 MongoDB&#xff0c;并實現數據持久化&#xff0c;確保數據不會因容器重啟或刪除而丟失…

信奧賽CSP-J復賽集訓(模擬算法專題)(3):P1089 [NOIP 2004 提高組] 津津的儲蓄計劃

信奧賽CSP-J復賽集訓&#xff08;模擬算法專題&#xff09;&#xff08;3&#xff09;&#xff1a;P1089 [NOIP 2004 提高組] 津津的儲蓄計劃 題目描述 津津的零花錢一直都是自己管理。每個月的月初媽媽給津津 300 300 300 元錢&#xff0c;津津會預算這個月的花銷&#xff0…

日新F1、瑞研F600P 干線光纖熔接(熔接損耗最大0.03DB)

Ⅰ. 設備特性對比與實測驗證 1. 日新F1&#xff08;兩馬達&#xff09;極限參數 切割角度&#xff1a;必須≤0.3&#xff08;雙邊累計誤差&#xff1c;0.6&#xff09; ? 實測案例&#xff1a;切割0.35時&#xff0c;損耗波動達0.05-0.08dB&#xff08;超干線標準&#xff09…

【量化科普】Sharpe Ratio,夏普比率

【量化科普】Sharpe Ratio&#xff0c;夏普比率 &#x1f680;量化軟件開通 &#x1f680;量化實戰教程 在量化投資領域&#xff0c;夏普比率&#xff08;Sharpe Ratio&#xff09;是一個非常重要的風險調整后收益指標。它由諾貝爾經濟學獎得主威廉F夏普&#xff08;William…

數據結構--【順序表與鏈表】筆記

順序表 template <class T> class arrList :public List<T> //表示 arrList 類以公有繼承的方式繼承自 List<T> 類 //公有繼承意味著 List<T> 類的公共成員在 arrList 類中仍然是公共成員&#xff0c;受保護成員在 arrList 類中仍然是受保護成員。 { …

idea中隱藏目錄

可能的解決步驟&#xff1a; 排除目錄的方法是否在2021版本中有變化&#xff1f;應該沒有&#xff0c;還是通過右鍵標記為排除。 用戶可能想完全隱藏目錄&#xff0c;比如在項目視圖中不顯示&#xff0c;這可能需要調整項目視圖的設置&#xff0c;比如取消勾選“顯示排除的文件…

AWS 如何導入內部SSL 證書

SSL 證書的很重要的功能就是 HTTP- > HTTPS, 下面就說明一下怎么導入ssl 證書,然后綁定證書到ALB. 以下示例說明如何使用 AWS Management Console 導入證書。 從以下位置打開 ACM 控制臺:https://console.aws.amazon.com/acm/home。如果您是首次使用 ACM,請查找 AWS Cer…

2025最新群智能優化算法:基于RRT的優化器(RRT-based Optimizer,RRTO)求解23個經典函數測試集,MATLAB

一、基于RRT的優化器 基于RRT的優化器&#xff08;RRT-based Optimizer&#xff0c;RRTO&#xff09;是2025年提出的一種新型元啟發式算法。其受常用于機器人路徑規劃的快速探索隨機樹&#xff08;RRT&#xff09;算法的搜索機制啟發&#xff0c;首次將RRT算法的概念與元啟發式…

doris: Oracle

Apache Doris JDBC Catalog 支持通過標準 JDBC 接口連接 Oracle 數據庫。本文檔介紹如何配置 Oracle 數據庫連接。 使用須知? 要連接到 Oracle 數據庫&#xff0c;您需要 Oracle 19c, 18c, 12c, 11g 或 10g。 Oracle 數據庫的 JDBC 驅動程序&#xff0c;您可以從 Maven 倉庫…

im即時聊天客服系統SaaS還是私有化部署:成本、安全與定制化的權衡策略

隨著即時通訊技術的不斷發展&#xff0c;IM即時聊天客服系統已經成為企業與客戶溝通、解決問題、提升用戶體驗的重要工具。在選擇IM即時聊天客服系統時&#xff0c;企業面臨一個重要決策&#xff1a;選擇SaaS&#xff08;軟件即服務&#xff09;解決方案&#xff0c;還是進行私…

mysql中in和exists的區別?

大家好&#xff0c;我是鋒哥。今天分享關于【mysql中in和exists的區別?】面試題。希望對大家有幫助&#xff1b; mysql中in和exists的區別? 1000道 互聯網大廠Java工程師 精選面試題-Java資源分享網 在 MySQL 中&#xff0c;IN 和 EXISTS 都用于進行子查詢&#xff0c;但它…

element-plus中table組件的使用

1、table組件的基本使用 注意&#xff1a; ①對象集合&#xff0c;要從后端查詢。 ②prop是集合中的對象的屬性名&#xff1b;label是表格表頭的名稱。 2、將性別一列的71轉為男&#xff0c;72轉為女 問題描述&#xff1a; 解決步驟&#xff1a; ①將el-table-column變成雙標簽…