【发布时间】:2014-03-16 03:42:44
【问题描述】:
我正在尝试使用strace 来了解二进制程序如何使用内存。
但是,strace 的默认输出为了更加用户友好,会将任何 char * 缓冲区打印为相应的字符串。
read(3, "Tell me, Muse, of that man of ma"..., 4096) = 270
有没有办法告诉strace 在其内容旁边打印字符串的实际地址?
如果不能同时拥有两者,只打印字符串的地址而不是截断的内容也可以。
【问题讨论】:
-
我认为这不是 strace(1) 的用途。您可能想看看 ltrace 和 gdb。
-
也许它不受支持,但我看不出我所描述的内容超出了 strace 的范围。它已经完成了这项工作,但没有以我需要的格式打印信息。我已经检查过 ltrace 并且它具有相同的行为(即 char * 缓冲区被打印为字符串)。 gdb 用于交互式调试,这不是我想要的。
标签: linux debugging reverse-engineering strace