Linux下gdb調(diào)試打印字符串方式
一. gdb 調(diào)試打印字符串
在 gdb 調(diào)試中,有時候需要打印一些字符串。
可以使用如下命令進(jìn)行字符串的打印。
如下:
x/s 命令
以下面代碼為例,說明打印字符串的操作。
代碼如下:
#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ù)組 buffer 中的字符串。
二. 打印變量的類型與變量所在的文件
打印變量類型
在 gdb 調(diào)試中,有時候需要打印變量的類型,
命令入下:
whatis 變量名 或 ptype 變量名
以下面代碼為例,說明一下打印變量的類型操作,
代碼如下:
#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é)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決Vmware虛擬機安裝centos8報錯“Section?%Packages?Does?Not?End?W
這篇文章介紹了解決Vmware虛擬機安裝centos8報錯“Section?%Packages?Does?Not?End?With?%End.?Pane?Is?Dead”的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05虛擬機安裝linux系統(tǒng)無法上網(wǎng)的解決方法
這篇文章主要為大家詳細(xì)介紹了虛擬機安裝linux系統(tǒng)無法上網(wǎng)的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下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 安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06