Linux下gdb調(diào)試打印字符串方式
一. gdb 調(diào)試打印字符串
在 gdb 調(diào)試中,有時(shí)候需要打印一些字符串。
可以使用如下命令進(jìn)行字符串的打印。
如下:
x/s 命令
以下面代碼為例,說(shuō)明打印字符串的操作。
代碼如下:
#include <stdio.h> int main(void) { char buffer[100] = {0}; snprintf(buffer, sizeof(buffer), "%s", "hello,world!"); printf("***buffer: %s\n", buffer); return 0; }
下面打印 buffer 中的字符串,
操作如下:
可以看到,當(dāng)輸入 x/s buffer 命令時(shí),打印了數(shù)組 buffer 中的字符串。
二. 打印變量的類型與變量所在的文件
打印變量類型
在 gdb 調(diào)試中,有時(shí)候需要打印變量的類型,
命令入下:
whatis 變量名 或 ptype 變量名
以下面代碼為例,說(shuō)明一下打印變量的類型操作,
代碼如下:
#include <stdio.h> struct student{ char name[100]; int age; }; int main(void) { struct student st = {"Tom", 20}; printf("***st.name: %s, st.age: %d\n", st.name, st.age); return 0; }
下面在 gdb 調(diào)試中,打印變量的類型。
可以看到 whatis 命令與 ptype 命令都可以打印變量的類型,而 ptype 類型打印出了更詳細(xì)的變量類型信息。
可以看到,查看 變量類型的命令 " whatis 變量名 " 或者 " ptype 變量名 " 的不同效果。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux下多個(gè)硬盤劃分到同一掛載點(diǎn)問題
在Linux系統(tǒng)中,將多個(gè)硬盤劃分到同一掛載點(diǎn)需要通過邏輯卷管理(LVM)來(lái)實(shí)現(xiàn),首先,需要將物理存儲(chǔ)設(shè)備(如硬盤分區(qū))創(chuàng)建為物理卷,然后,將這些物理卷組成邏輯卷組,接著,從邏輯卷組中劃分出邏輯卷,并進(jìn)行格式化和掛載2025-02-02linux虛擬機(jī)配置靜態(tài)IP地址的完整步驟
這篇文章主要給大家分享介紹了關(guān)于linux虛擬機(jī)配置靜態(tài)IP地址的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11解決Vmware虛擬機(jī)安裝centos8報(bào)錯(cuò)“Section?%Packages?Does?Not?End?W
這篇文章介紹了解決Vmware虛擬機(jī)安裝centos8報(bào)錯(cuò)“Section?%Packages?Does?Not?End?With?%End.?Pane?Is?Dead”的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05虛擬機(jī)安裝linux系統(tǒng)無(wú)法上網(wǎng)的解決方法
這篇文章主要為大家詳細(xì)介紹了虛擬機(jī)安裝linux系統(tǒng)無(wú)法上網(wǎng)的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Ubuntu環(huán)境編譯安裝PHP和Nginx的方法
這篇文章主要介紹了Ubuntu環(huán)境編譯安裝PHP和Nginx的方法,較為詳細(xì)的分析了Ubuntu環(huán)境編譯安裝PHP和Nginx的具體步驟、相關(guān)命令與操作技巧,需要的朋友可以參考下2019-08-08VMware 12 下 Ubuntu 16.04 安裝圖文教程
這篇文章主要為大家詳細(xì)介紹了VMware 12 下 Ubuntu 16.04 安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06