Ken*_*Ken 9 printing string assembly gdb
所以在程序集中我声明了以下字符串:
Sample db "This is a sample string",0
Run Code Online (Sandbox Code Playgroud)
在GDB中,我输入"p Sample"(不带引号),它会吐出0x73696854.我想要打印出实际的String.所以我尝试了"printf"%s",Sample"(再次,没有引号),它吐出"无法访问地址0x73696854的内存".
简短版本:如何在GDB中打印字符串?
Ken*_*Ken 13
我的老师刚刚给我发了电子邮件.对于任何想知道:
p(char[20]) Sample
Run Code Online (Sandbox Code Playgroud)
其中20是要打印的字符数.
要打印C风格的NUL
终止字符串,您还应该能够这样做:
print (char*) &Sample
printf "%s", &Sample
Run Code Online (Sandbox Code Playgroud)
oru*_*tam 12
我遇到过同样的问题!试试这个:
x/s &Sample # prints the whole string
Run Code Online (Sandbox Code Playgroud)
"x" - 通常用于检查数据.
对于一个单号字符,您可以使用此代码
x/c &Sample # prints: "T"
Run Code Online (Sandbox Code Playgroud)
如果你想看到多个字符,你可以给出希望字符的数量
x/3c &Sample # prints: "T" "h" "i"
Run Code Online (Sandbox Code Playgroud)