我正在使用 gdb 来调试 NS-2,它是一个网络协议模拟器。它需要一个 .tcl 文件作为输入并解释它。[我认为是翻译。]
有些代码是用 tcl(事件和网络组件的创建)编写的,有些是用 C++ 编写的(尤其是数据包格式、代理等)。
我在 C++ 中创建了一个代理,我想在某个函数调用时停止它,以便我可以看到堆栈跟踪并找到在它之前调用了哪些其他类。
这就是我所做的:
我的 MyAgent::function 之一出现了一些错误,它给出了 Segmentation Fault 并且 gdb 自动停止在那里。然后我可以看到堆栈跟踪。我纠正了错误。
现在当我跑步时
gdb ./ns
b MyAgent::function()
/*
When i press TAB after writing "b MyA" it gives me all functions
of my class :). when i press enter after above command --
it asks me "Breakpoint on future shared library load" and i say Yes.
I hope this is ok ??
*/
r myfiles/myWireless.tcl
现在它运行并且不会在任何地方停止。:(
我确信这个函数正在被调用,因为当发生分段错误时,它在那个函数处停止。
谢谢