相关疑难解决方法(0)

如何让gdb以十六进制模式打印出所有值?

默认情况下,gdb始终打印/显示基数为10的所有变量/参数.有什么方法可以让gdb在打印任何内容时始终使用base 16(当我不需要时返回默认设置)?我知道它可以通过提供打印/显示的'/ x'参数来打印,但我不想每次都这样做....

c debugging gdb

28
推荐指数
1
解决办法
1万
查看次数

如何在保留ascii形式的ascii字符的同时使gdb以十六进制而不是八进制打印字符串的不可打印字符?

假设我有一个bufc字符串表示的缓冲区

 char* buf = "Hello World \x1c"
Run Code Online (Sandbox Code Playgroud)

当我使用命令在gdb中打印此buf时p buf,我得到以下内容

 $1 = "Hello World \034"
Run Code Online (Sandbox Code Playgroud)

是否有打印命令或gdb设置将打印以下内容?

$1 = "Hello World \x1c"
Run Code Online (Sandbox Code Playgroud)

我尝试过各种格式参数,例如/c/x,但是它们都没有得到我想要的效果.我也玩过printf但是无法达到预期的效果.

更新:我正在使用"GNU gdb(GDB)7.0.1-debian".

更新:我也玩过x.

如果我这样做x/c,打印非打印字符的八进制和十进制,然后打印带有ascii和十进制的可打印字符.

如果我这样做x/s输出与p命令完全相同.

如果我这样做x/x只输出十六进制但我们丢失了可打印部分的ascii字符.

更新:这个参考,除非不完整,表明我想要的东西不可用,但任何人都可以确认吗?

c string debugging assembly gdb

21
推荐指数
3
解决办法
2万
查看次数

标签 统计

c ×2

debugging ×2

gdb ×2

assembly ×1

string ×1