我正在开发一个使用(定制)微线程解决方案的大型程序。有时候我需要调试一个崩溃。在这种情况下,能够从一个微线程切换到另一个微线程是很有用的。
如果我正在进行实时调试,我可以将所有寄存器替换为来自微线程上下文的寄存器。我已经为此编写了一个宏,它工作得非常好。
问题是,如果我正在进行事后调试(从核心文件),则无法更改寄存器值。在这种情况下,我无法告诉GDB更改其当前帧的概念,因为在这种情况下所有寄存器都被认为是只读的。
有没有办法告诉GDB我的自定义上下文管理?
沙查尔
发布于 2013-11-18 14:33:24
在gdb中,没有一种简单的内置方法可以做到这一点。
我认为最简单的方法可能是编写一个gdbserver版本,它可以读取您的核心文件,并将您的微线程作为真正的线程呈现给gdb。至少已经有一个gdbserver可以读取核心文件,所以它可能不是很难。然而,我真的不能确定。
https://stackoverflow.com/questions/19972568
复制相似问题