使用Linux中的C Map文件调试崩溃?

时间:2013-09-18 07:39:02

标签: c linux

我在这里看到了一份文件http://www.codeproject.com/Articles/3472/Finding-crash-information-using-the-MAP-file。这个例子是关于在Windows文件中看到的崩溃?我正在寻找与Linux系统上生成的崩溃相同的数学方法。如果我在Linux上遇到崩溃,那么我将如何在Microsoft文档http://www.codeproject.com/Articles/3472/Finding-crash-information-using-the-MAP-file之类的类似行中调试该问题。请帮忙? Linux中的加载地址和代码段地址是否相同? Linux中的内容如下所述“二进制文件的第一部分是可移植可执行文件(PE),长度为0x1000字节。”?

1 个答案:

答案 0 :(得分:1)

PE是Windows格式。 Linux使用ELF。当然你可以手动解析ELF,但你不应该--gdb可以为你做到这一点。更重要的是,您可以使用addr2line实用程序将地址映射到源代码中的文件/行(当然这两者都需要调试版本)。

Linux中很少使用地图文件 - 它通常只是调试可执行文件的一部分。但是,它可以从调试版本中转储,但它没有太大的实用价值。

另外,请查看How to use addr2line command in linux