backtrace

    10热度

    2回答

    我正在使用visual c#来调试一个大的c#项目。该项目非常大,只有一些pdbs是由我自己构建的。我可以构建所有的pdb,但这非常耗时。我正在调试回溯,但部分跟踪标有[外部代码]。我知道一些pdb缺失,但我怎么知道外部代码驻留在哪个DLL?在C中,我可以得到EIP,然后看到过程映射以确定EIP的存在位置,但是如何在.Net环境中完成这项工作?

    6热度

    1回答

    我正试图解决如何存储并在Mac OS X上的C++应用程序中打印当前堆栈。主要问题似乎是让dladdr返回正确的符号当在主可执行文件中给出一个地址时。我怀疑这个问题实际上是一个编译选项,但我不确定。 我已经尝试了Darwin/Leopard的backtrace代码,但它调用dladdr并与我自己的代码调用dladdr时遇到同样的问题。 原帖: 目前我捕捉与此代码堆栈:这似乎工作确定 int Bac

    0热度

    4回答

    我的日志记录代码使用返回值backtrace()来确定当前的堆栈深度(用于漂亮的打印目的),但从分析中我可以看出这是一个相当昂贵的调用。 我不认为有这样做的更便宜的方法?请注意,我不关心帧地址,只是其中有多少。 编辑:这些日志记录函数全部用于大型代码库,因此手动跟踪堆栈深度并不是真正的选择。

    2热度

    3回答

    当使用-fomit-frame-pointer(自动设置各种-O设置)时,执行回溯是有问题的。我想知道在编译时是否有一种方法确定代码是用这个开关编译的?在这种情况下,我可以放入#ifndef以防止在不明智的情况下回溯。 这个-fomit-frame指针开关打开时是否设置了任何宏? 感谢, 的setjmp

    1热度

    1回答

    程序中有两个堆栈:一个是由OS创建的,另一个是由程序本身创建的,以便用它运行一些代码。 当程序在第二个堆栈中崩溃时,我想切换到gdb中的主堆栈并查看回溯。可能吗? 我试图将rsp保存到一个变量并在崩溃后将其更改,但是由此产生的回溯不正确。我认为gdb无法区分栈中的帧。

    2热度

    2回答

    我正在用C++开发图像处理应用程序。我见过很多编译器错误和回溯,但这对我来说是新的。 #0 0xb80c5430 in __kernel_vsyscall() #1 0xb7d1b6d0 in raise() from /lib/tls/i686/cmov/libc.so.6 #2 0xb7d1d098 in abort() from /lib/tls/i686/cmov/libc.so.6

    0热度

    1回答

    我想从崩溃的C++ Mac应用程序中获得BackTrace,但是我对Mac很陌生,不知道如何去做。 我发现,它的细节上使用计算器一个问题:getting the current stack trace on mac os x 但是我的问题是,我没有看到,其中的代码是为了生活? 它是否在main.cpp? 它住在 try catch块的catch部分吗? 我可以做一些完整的代码示例,但我无法找到他们