Linux -- gdb/cgdb的認識和使用

預備知識

程序的發布?式有兩種, debug 模式和 release 模式, Linux gcc/g++ 出來的?進制程
序,默認是 release 模式。
要使?gdb調試,必須在源代碼?成?進制程序的時候, 加上 -g 選項,如果沒有添加,程序?法被
編譯,makefile中也需要加上。
$ gcc mycmd.c -o mycmd # 默認模式,不?持調試
$ file mycmd
mycmd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically
linked, interpreter /lib64/ld-linux-x86-64.so.2,
BuildID[sha1]=82f5cbaada10a9987d9f325384861a88d278b160, for GNU/Linux
3.2.0, not stripped
$ gcc mycmd.c -o mycmd -g # debug模式
$ file mycmd
mycmd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically
linked, interpreter /lib64/ld-linux-x86-64.so.2,
BuildID[sha1]=3d5a2317809ef86c7827e9199cfefa622e3c187f, for GNU/Linux
3.2.0, with debug_info, not stripped

常?使?

開始: gdb 目標文件
退出: ctrl + d quit 調試命令
使用實例:
這里在第五行打了一個斷點 b 5 ,然后運行代碼 r,代碼在第五行這個位置停下了,l/list可以顯示10行的代碼,剩下的一些使用大家可以自己去嘗試。
安裝cgdb:
上?的基本調試還是?煩,雖然是?屏,但是還是想看到代碼調試
推薦安裝cgdb:
Ubuntu: sudo apt-get install -y cgdb
Centos: sudo yum install -y cgdb

watch

執?時監視?個表達式(如變量)的值。如果監視的表達式在程序運?期間的值發?變化,GDB 會暫停程序的執?,并通知使?者

GDB 會默認監控?當前作用域?中的變量:如果在函數內部設置觀察點,且該函數有同名局部變量,則觀察的是?局部變量。如果在全局作用域(如?main?函數開始前)設置觀察點,則觀察的是全局變量

添加條件斷點

實例

新建斷點時添加條件 b n(斷點序號) if i==30

給已經存在的端點新增條件 condition n(斷點序號) i==30
條件斷點添加常?兩種?式:1. 新增 2. 給已有斷點追加
注意兩者的語法有區別,不要寫錯了。
新增: b ?號/?件名:?號/函數名 if i == 30(條件)
給已有斷點追加:condition 2 i==30, 其中2是已有斷點編號,沒有if

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

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

相關文章

window 顯示驅動開發-Direct3D 呈現性能改進(四)

調用資源創建、映射和取消映射函數的行為更改 對于 WDDM 1.3 及更高版本驅動程序實現的這些函數,Direct3D 運行時為映射默認方案提供一組受限的輸入值。 這些受限值僅適用于支持功能級別 11.1 及更高版本的驅動程序。 CreateResource (D3D11) 函數— 這些輸入 D3…

3.python操作mysql數據庫

前言:在現代應用程序中,數據庫扮演者至關重要的角色。mysql是一個流行的關系型數據庫管理系統,廣泛應用于各種規模的應用中。在pytho中,我們可以通過連接庫與mysql數據庫進行交互,實現數據的增刪改查操作。與此同時&am…

day023-網絡基礎與OSI七層模型

文章目錄 1. 網絡基礎知識點1.1 網絡中的單位1.2 查看實時網速:iftop1.3 交換機、路由器 2. 路由表2.1 查看路由表的命令2.2 路由追蹤命令 3. 通用網站網絡架構4. 局域網上網原理-NAT5. 虛擬機上網原理6. 虛擬機的網絡模式6.1 NAT模式6.2 橋接模式6.3 僅主機模式 7.…

DeepSeek智能對話助手項目

目錄: 1、效果圖2、實現代碼3、溫度和TopK的作用對比 1、效果圖 2、實現代碼 # import gradio as gr# def reverse_text(text): # return text[::-1]# demogr.Interface(fnreverse_text,inputs"text",outputs"text")# demo.launch(share&q…

視覺中國:鏡頭下的中國發展圖景

2025年5月下旬,從北國草原到江南水鄉,從文化遺產到科技創新,中國大地上演著一幕幕生機勃勃的圖景。河北張家口的沙狐幼崽與濕地生態和諧共生,湖北襄陽的茶園雕琢出詩意田園;北京殷商文創的活力、沈陽文物情景劇的創意&…

LabVIEW 中內存釋放相關問題

在LabVIEW 編程領域,內存管理是一個關鍵且復雜的議題。我們常常關注 LabVIEW 如何將內存釋放回操作系統(OS),以及是否有方法確保在特定數據結構(如隊列、變體屬性、動態數據引用 DVR 等)銷毀、刪除或清空后…

基于正點原子阿波羅F429開發板的LWIP應用(4)——HTTP Server功能

說在開頭 正點原子F429開發板主芯片采用的是STM32F429IGT6,網絡PHY芯片采用的是LAN8720A(V1)和YT8512C(V2),采用的是RMII連接,PHY_ADDR為0;在代碼中將會對不同的芯片做出適配。 CubeMX版本:6.6.1; F4芯片組…

設計模式-結構型模式(詳解)

適配器模式 將一個類的接口轉換成客戶端期望的另一個接口,解決接口不兼容問題。 適配器模式由四部分組成: 客戶端:即需要使用目標接口的類 目標接口 需要適配的類,也就是已經存在好的功能,但客戶端通過目標接口沒辦…

銀河麒麟操作系統下載

產品試用申請國產操作系統、麒麟操作系統——麒麟軟件官方網站 下載頁面鏈接如上,申請試用即可。 申請試用填寫后提交,界面就變成了這樣,可以挑選適合自己的版本。 海思麒麟9006C版,如下: 本地下載:Kylin…

[CARLA系列--03]如何打包生成CARLA 0.9.15的非編輯版(地圖的加載與卸載)

前兩篇文章介紹了如何去安裝可編輯版的CARLA 0.9.15,這個完整的工程文件實在是太大了,大概消耗了100個G的磁盤空間,當在進行一個CARLA項目的時候,不利于在每個開發電腦都去安裝部署一套CARLA 0.9.15的源碼,所以把自己這…

【機器學習基礎】機器學習入門核心算法:樸素貝葉斯(Naive Bayes)

機器學習入門核心算法:樸素貝葉斯(Naive Bayes)) 一、算法邏輯1.1 基本概念1.2 基本流程 二、算法原理與數學推導2.1 貝葉斯定理2.2 樸素貝葉斯分類器2.3 不同分布假設下的概率計算2.3.1 高斯樸素貝葉斯(連續特征&…

云服務器系統盤滿了,但是其他正常,是否可能是被攻擊了

目錄 問題背景分析解決系統盤滿的問題解決結果 問題背景 今天登錄我的云服務器看了眼,發現系統盤滿了,但是其他正常 分析 1、首先要確認是否是被攻擊: top / htop (安裝:yum install htop 或 apt install htop):…

雙因子COX 交互 共線性 -spss

SPSS 簡要界面操作步驟(針對雙因子 COX 分析) 1. 數據準備 變量格式:確保數據已整理為以下格式(示例): 時間變量(如 Time_to_Recurrence)結局變量(如 Recurrence:1=復發,0=未復發)預測變量(CSPG4_HSCORE、FAM49B_Status 二分類變量)協變量(如 Lesion_Size、Pat…

【MySQL】第12節|MySQL 8.0 主從復制原理分析與實戰(二)

一、組復制(MGR)核心概念 1. 定義與定位 目標:解決傳統主從復制的單點故障、數據不一致問題,提供高可用、高擴展的分布式數據庫方案。基于 GTID:依賴全局事務標識符(GTID)實現事務一致性&…

React 泛型組件:用TS來打造靈活的組件。

文章目錄 前言一、什么是泛型組件?二、為什么需要泛型組件?三、如何在 React 中定義泛型組件?基礎泛型組件示例使用泛型組件 四、泛型組件的高級用法帶默認類型的泛型組件多個泛型參數 五、泛型組件的實際應用場景數據展示組件表單組件狀態管…

如何手搓一個查詢天氣的mcp server

環境配置煩請移步上一篇博客 這里直接步入主題,天氣查詢的api用的是openweather,免費注冊就可以使用了 每天1000次內使用時免費的,大概的api 如下 https://api.openweathermap.org/data/2.5/weather?qBeijing,cn&APPID注冊后可以拿到一個…

深入解析計算機網絡核心協議:ARP、DHCP、DNS與HTTP

文章目錄 一、ARP(地址解析協議)1.1 定義與功能1.2 工作原理1.3 應用場景1.4 安全風險與防御 二、DHCP(動態主機配置協議)2.1 定義與功能2.2 工作原理2.3 應用場景2.4 優缺點與安全建議 三、DNS(域名系統)3…

《Java 單例模式:從類加載機制到高并發設計的深度技術剖析》

【作者簡介】“琢磨先生”--資深系統架構師、985高校計算機碩士,長期從事大中型軟件開發和技術研究,每天分享Java硬核知識和主流工程技術,歡迎點贊收藏! 一、單例模式的核心概念與設計目標 在軟件開發中,我們經常會遇…

NL2SQL代表,Vanna

Vanna 核心功能、應用場景與技術特性詳解 一、核心功能 1. 自然語言轉SQL查詢 Vanna 允許用戶通過自然語言提問(如“顯示2024年銷售額最高的產品”),自動生成符合數據庫規范的SQL查詢語句。其底層采用 RAG(檢索增強生成&#xf…

【動態規劃】子數組系列(二)

📝前言說明: 本專欄主要記錄本人的動態規劃算法學習以及LeetCode刷題記錄,按專題劃分每題主要記錄:(1)本人解法 本人屎山代碼;(2)優質解法 優質代碼;&…