String 汇编GDB打印字符串

String 汇编GDB打印字符串,string,assembly,gdb,printing,String,Assembly,Gdb,Printing,因此,在汇编中,我声明以下字符串: Sample db "This is a sample string",0 在GDB中,我输入“p Sample”(不带引号),它将输出0x73696854。我想要打印出实际的字符串。所以我尝试了“printf”%s“,Sample”(同样,没有引号),结果显示“无法访问地址0x73696854处的内存” 简短版本: 如何在GDB中打印字符串?我的老师刚刚给我发了电子邮件。对于任何想知道: p(char[20]) Sample 其中20是要打印的字符数 要

因此,在汇编中,我声明以下字符串:

Sample db "This is a sample string",0
在GDB中,我输入“p Sample”(不带引号),它将输出0x73696854。我想要打印出实际的字符串。所以我尝试了“printf”%s“,Sample”(同样,没有引号),结果显示“无法访问地址0x73696854处的内存”

简短版本:
如何在GDB中打印字符串?

我的老师刚刚给我发了电子邮件。对于任何想知道:

p(char[20]) Sample
其中20是要打印的字符数

要打印以C样式
NUL
结尾的字符串,还应能够执行以下操作:

print (char*) &Sample
printf "%s", &Sample

我也有同样的问题!试试这个:

x/s &Sample # prints the whole string
“x”-通常代表检查数据

对于单个字符,您可以使用此代码

x/c &Sample # prints: "T"
如果你想看到多个字符,你可以给出想要的字符数

x/3c &Sample # prints: "T" "h" "i"

实际上,它先打印字符的ASCII值,然后打印字符本身。所以
x/3c&Sample>打印:0x7fffffffdc52:48'T'104'h'105'i'