gpt4 book ai didi

c - 使用 mdb 解释应用程序堆栈跟踪

转载 作者:行者123 更新时间:2023-11-30 15:58:41 25 4
gpt4 key购买 nike

有人可以帮我解释这个堆栈跟踪吗:

        Loading modules: [ libumem.so.1 libc.so.1 libuutil.so.1 ld.so.1 ]
> $c
libc.so.1`strlen+0xc(80b37ba, fe679d2c, fe679d00, 0)
libc.so.1`snprintf+0x74(fe67d970, 1388, 80b37b8, efef9f68, 80b379d, fe679e30)
> 80b37ba::whatis
80b37ba is unknown
> fe679d2c::whatis
fe679d2c is unknown
> fe679d00::whatis
fe679d00 is unknown

strlen 函数获取一个参数,但在此堆栈跟踪中我看到 3 个地址?它们的含义是什么?

问候

最佳答案

调试器无法解释其中的大部分内容。

调试器可能不知道函数获得了多少个参数。所以它会打印更多。但您可以忽略额外的参数。

有意义的部分显示调用了 snprintf,然后调用 strlen。这可能是由于格式字符串中的 %s 造成的。 strlen 参数与 snprintf 的第三个参数类似(不相同,我不知道为什么)。
所以可能有些代码会执行类似 snprintf("%d %s\n", number, string) 的操作。
您可以在 fe67d970 找到实际的格式字符串,它可能会让您识别调用它的人(除非您在任何地方都使用相同的格式字符串)。

关于c - 使用 mdb 解释应用程序堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9583443/

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