C++開發調試工具:GDB調試,windebug調試,adb調試

我們在C++開發過程中時常避免不了要調試追蹤,一下介紹最主流的三種調試工具:

一.GDB調試

1.coredump文件:
coredump文件是程序異常時系統產生的錯誤日志文件,即核心轉儲文件;
編譯一個debug程序,必須是debug版本,否則無法產生coredump文件;
編譯命令:g++ test.cpp -o mytest -g,必須要加上"-g"才能生成由debug info的文件;
執行程序直至崩潰,讓其產生coredump文件;
2.GDB命令調試:
安裝GDB命令:sudo apt-get install gdb下載,執行…/configure,執行make j4,執行sudo make install安裝
GDB常用命令:run,break,continue,frame,list,next等
調用GDB命令:gdb mytest core.2222
查看調用堆棧命令:bt 來看到崩潰時執行的程序行
切入出問題的堆棧中命令:f 0(f加上堆棧編號)看以看到當時執行的程序代碼行,確認出問題的點
查看對應的指針命令:p ptr(指針名稱) 可以看到該指針為空等原因

二.windebug調試

安裝windebug,控制面板 -> 程序 -> Windows Software Development Kit -> 右鍵選擇更改 -> change -> 勾選Debugging Tools For Windows -> 安裝;
為進程創建轉儲文件(dmp),既可以在任務有管理中選中進程 -> 右鍵 -> 創建轉儲文件;
運行要調試的程序;
打開windebug工具,菜單欄選擇"file",“Attach to Process”;
選擇要調試的目標程序;
附加;
附加后程序會被暫停,這時候需要使用Debug中go、step out、stepover等命令讓程序繼續執行,直到出現異常,Windbg會檢測出異常,并停止;
windbg發現異常并中斷,然后輸入:.dump /f e:dump/XXXX.dmp,來生成全信息的dmp文件;

三.adb調試

1.介紹
adb全稱Android Debug Bridge是C/S模式的橋接調試工具,可以上傳/下載文件,運行設備shell命令,對設備安裝和卸載應用等功能,主要用于andriod調試,也支持Linux嵌入式設備調試;
2.安裝adb
adb支持Windows和Linux,在adb官網下載;Windows上解壓后設置系統環境變量指向解壓釋放的目錄;
3.連接使用
通過數據線連接開發板;
打開cmd命令窗口,即可使用adb命令調試設備;
4.常用命令
adb verison 顯示adb版本;
adb help 幫助信息;
adb devices 查看當前已連接的設備列表;
adb root 獲取root權限;
adb -s 222 shell 與設備號為222的設備建立連接;
exit 退出設備連接;
adb -p 6666 start-server 指定6666端口來啟動設備adb服務;
adb shell pm list packages 列出當前設備中所有的包名;
adb install -r <文件路徑\apk> 覆蓋式安裝apk包;
adb push C:\user\test /usr/local/ 將C盤下的test文件拷貝到設備的usr/local目錄下;
adb shell getprop ro.product.model 獲取設備型號;

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

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

相關文章

使用 OpenCV 和 Python 進行車道檢測和物體檢測(YOLO)

本項目旨在開發一個集車道檢測與物體檢測功能于一體的智能視覺分析系統&#xff0c;利用先進的計算機視覺技術和深度學習模型&#xff0c;實現實時的道路場景理解和目標識別。系統主要依托OpenCV這一強大的計算機視覺庫&#xff0c;以及Python作為編程語言&#xff0c;融合了車…

MySQL索引教程(01):創建索引

文章目錄 MySQL 創建索引索引介紹MySQL CREATE INDEX 語法MySQL 索引類型MySQL CREATE INDEX 實例結論 MySQL 創建索引 對于一個具有大量數據行的表&#xff0c;如果你根據某個查詢條件檢索數據時很慢&#xff0c;可能是因為你沒有在檢索條件相關的列上創建索引。 索引類似于…

FPC生產工藝全流程詳解

FPC生產制作繁瑣而且難度較大&#xff0c;與普通PCB比較&#xff0c;FPC單位面積電路的造價高很多&#xff0c;但是&#xff0c;由于FPC優異的柔性、輕薄和可靠性等特性&#xff0c;給眾多領域的設備和產品提供了更廣泛的實現空間和新的設計方案&#xff0c;比如沉金板在電子、…

android的activty冷啟動和熱啟動差異是什么?

Android的Activity冷啟動和熱啟動之間存在顯著差異&#xff0c;這些差異主要體現在啟動過程、資源加載、組件初始化以及用戶體驗等方面。以下是對兩者差異的詳細分析&#xff1a; 一、定義與過程差異 冷啟動&#xff1a; 定義&#xff1a;冷啟動是指應用程序完全退出后&#…

Java需要英語基礎嗎?

Java編程語言本身并不要求必須有很強的英語基礎&#xff0c;因為Java的語法和邏輯是獨立于任何特定語言的。我收集歸類了一份嵌入式學習包&#xff0c;對于新手而言簡直不要太棒&#xff0c;里面包括了新手各個時期的學習方向編程教學、問題視頻講解、畢設800套和語言類教學&am…

android開發引入jar包

我在為一個安卓設備開發一個APP&#xff0c;設備的廠家給我提供了一個jar包&#xff0c;我應該如何把它引入到項目之中呢&#xff1f; 很慚愧我以前幾乎沒做過android的開發&#xff0c;在此之前這么一個簡單的問題也不會。 實踐 我隨手在Android studio中新建了一個項目。 你…

Java項目:基于SSM框架實現的共享客棧管理系統分前后臺【ssm+B/S架構+源碼+數據庫+畢業論文】

一、項目簡介 本項目是一套基于SSM框架實現的共享客棧管理系統 包含&#xff1a;項目源碼、數據庫腳本等&#xff0c;該項目附帶全部源碼可作為畢設使用。 項目都經過嚴格調試&#xff0c;eclipse或者idea 確保可以運行&#xff01; 該系統功能完善、界面美觀、操作簡單、功能…

Splunk Enterprise for Windows 未授權任意文件讀取漏洞復現(CVE-2024-36991)

0x01 產品簡介 Splunk Enterprise是一款功能強大的數據分析引擎,旨在從所有IT系統和基礎設施數據中提供數據搜索、報表和可視化展現。Splunk Enterprise能夠收集、索引和利用所有應用程序、服務器和設備(包括物理、虛擬和云中環境)生成的快速移動型計算機數據。它允許用戶從…

交易積累-比特幣

在某些情況下&#xff0c;由于監管限制或個人選擇&#xff0c;投資者可能會考慮購買與比特幣相關的替代投資產品&#xff0c;如比特幣礦業公司股票&#xff08;例如Marathon Digital Holdings, Inc.&#xff0c;股票代碼&#xff1a;MARA&#xff09;或加密貨幣交易平臺的股票&…

使用maven搭建一個SpingBoot項目

1.首先創建一個maven項目 注意選擇合適的jdk版本 2.添加依賴 2.在pom.xml中至少添加依賴 spring-boot-starter-web 依賴&#xff0c;目的是引入Tomcat&#xff0c;以及SpringMVC等&#xff0c;使項目具有web功能。 <!-- 引入 包含tomcat&#xff0c;SpringMVC&#xff0c…

【C++題解】1561. 買木頭

問題&#xff1a;1561. 買木頭 類型&#xff1a;省賽、數組問題、二分答案、貪心、2015江蘇省青少年信息學奧林匹克競賽復賽 題目描述&#xff1a; 有 n 個木材供應商&#xff0c;每個供貨商有長度相同一定數量的木頭。長木頭可以鋸短&#xff0c;但短木頭不能接長。有一個客…

web前端之上傳文件夾、webkitdirectory

MENU 前言element-ui寫法input寫法 前言 1、以下代碼只實現的單個文件夾的上傳&#xff0c;原本需求是實現選擇多個文件夾上傳&#xff0c;但是沒找到實現的方法。如果想實現多個文件夾上傳&#xff0c;可以給這些文件夾新建一個父級文件夾&#xff0c;點擊上傳的時候選擇父級文…

14-36 劍和詩人10 - 用LLM構建 AI 代理平臺

介紹 在當今快速發展的技術環境中&#xff0c;大型語言模型 (LLM) 和 AI 代理正在改變我們與信息交互、實現流程自動化以及應對不同行業復雜挑戰的方式。隨著這些強大的模型不斷發展&#xff0c;對能夠無縫集成和協調它們的強大平臺的需求變得越來越重要。 讓我們深入研究設計…

android2024 gradle8 Processor和ksp兩種編譯時注解實現

android編譯時注解&#xff0c;老生常談&#xff0c;外面的例子都是bindView&#xff0c;腦殼看疼了&#xff0c;自己學習和編寫下。 而且現在已經進化到kotlin2.0&#xff0c;google也逐漸放棄kapt&#xff0c;進入維護狀態。所以要好好看看本貼。 參考我的工程&#xff1a; h…

數據結構之算法的時間復雜度

1.時間復雜度的定義 在計算機科學中&#xff0c;算法的時間復雜度是一個函數&#xff0c;它定量描述了算法的運行時間。一個算法所花費的時間與其中語句的執行次數成正比列&#xff0c;算法中的基本操作的執行次數&#xff0c;為算法的時間復雜度 例1&#xff1a; 計算Func1…

Linux:ollama大模型部署

目錄 Ollama 是一個能在本地機器上輕松構建和運行大型語言模型的輕量級、可擴展框架&#xff0c;適用于多種場景&#xff0c;具有易于使用、資源占用少、可擴展性強等特點。 1.安裝下載ollama 2.為 Ollama 創建一個用戶 3.為ollama創建服務文件 4.啟動ollama服務 5.拉取語…

Java 家庭物聯網

家庭物聯網系統的代碼和說明&#xff0c;包括用戶認證、設備控制、數據監控、通知和警報、日志記錄以及WebSocket實時更新功能。 ### 項目結構 plaintext home-iot-system ├── backend │ └── src │ └── main │ └── java │ └…

圖書館數據倉庫

目錄 1.數據倉庫的數據來源為業務數據庫&#xff08;mysql&#xff09; 初始化腳本 init_book_result.sql 2.通過sqoop將mysql中的業務數據導入到大數據平臺&#xff08;hive&#xff09; 導入mysql數據到hive中 3.通過hive進行數據計算和數據分析 形成數據報表 4.再通過sq…

【matlab】智能優化算法——求解目標函數

智能優化算法在求解目標函數方面發揮著重要作用&#xff0c;它通過迭代、篩選等方法來尋找目標函數的最優值&#xff08;極值&#xff09;。以下是關于智能優化算法求解目標函數的詳細介紹&#xff1a; 一、智能優化算法概述 智能優化算法是一種搜索算法&#xff0c;旨在通過…

設置單實例Apache HTTP服務器

配置倉庫 [rootlocalhost ~]# cd /etc/yum.repos.d/ [rootlocalhost yum.repos.d]# vi rpm.repo倉庫代碼&#xff1a; [BaseOS] nameBaseOS baseurl/mnt/BaseOS enabled1 gpgcheck0[AppStream] nameAppStream baseurl/mnt/AppStream enabled1 gpgcheck0掛載 [rootlocalhost …