gpt4 book ai didi

linux - 如何使字符串参数的 strace 打印地址而不仅仅是它们的值?

转载 作者:IT王子 更新时间:2023-10-29 01:02:50 25 4
gpt4 key购买 nike

我正在尝试使用 strace 来了解二进制程序如何使用内存。

但是,strace 的默认输出试图更加用户友好,将任何 char * 缓冲区打印为相应的字符串。

read(3, "Tell me, Muse, of that man of ma"..., 4096) = 270

有没有办法告诉 strace 在其内容旁边打印字符串的实际地址?

如果不可能同时拥有两者,只打印字符串的地址而不是其截断的内容也是可以的。

最佳答案

-e raw=read 应该已经做你想做的了。应该不需要修改源。

broadway@creepspread:~% strace -e raw=read ls 2>&1|grep ^read
读取(0x3,0x7fff5ea52e78,0x340)= 0x340
读取(0x3,0x7fff5ea52e48,0x340)= 0x340
读取(0x3,0x7fff5ea52e18,0x340)= 0x340
读取(0x3,0x7fff5ea52de8,0x340)= 0x340
读取(0x3,0x7fff5ea52ca8,0x340)= 0x340
读取(0x3,0x7fff5ea52c48,0x340)= 0x340
读取(0x3,0x7fff5ea52c18,0x340)= 0x340
读取(0x3,0x7fef1433f000,0x400)= 0x136
读(0x3,0x7fef1433f000,0x400)= 0

关于linux - 如何使字符串参数的 strace 打印地址而不仅仅是它们的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21819011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com