我正在使用strace在程序中查找可能的错误,并且有以下输出:

open(0x7765533c, O_RDONLY) = -1 EACCES (Permission denied)


如何获取存储在该地址的值或如何告诉strace打印path参数?

最佳答案

strace在无法显示字符串时会显示指针值,因为指针没有指向有效的内存位置。在这种情况下,指针的字节看起来可疑地类似于ASCII。

77  65  73  3c
 w   e   s   <


您已经以某种方式从字符串中提取了4个字节,并将它们误解为指针。

至少大部分是它的样子。我无法解释一件事,那就是您如何获得EACCES而不是EFAULT。

关于c - strace:打印路径而不是地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43539363/

10-11 15:23