我有一个复杂的类,我为它编写了一个干净的打印方法,或多或少明确地用于调试。但是,当我使用 gdb 时,我似乎无法弄清楚实际使用它来打印的语法。基本上我希望能够输入类似“myObject->print()”的内容并让它运行我的打印方法,但我得到了以下错误:
程序收到信号 EXC_BAD_ACCESS,无法访问内存。原因: KERN_INVALID_ADDRESS 地址:0x00000000000000a1 0x00007fff814c0684 in std::ostream::sentry::sentry () 正在调试的程序在从 GDB 调用的函数中发出信号。GDB 保留在接收信号的帧中。要更改此行为,请使用 "set unwindonsignal on" 对包含函数 (wfSamplePath::print_traj(std::ostream&)) 的表达式的评估将被放弃。
其中“wfSamplePath”是我的类,“print_traj”是我的打印方法(使用 std::cout 作为默认参数)。很明显,我认为我能做到这一点是有问题的。我在 xcode 3 中使用 gdb。“myObject”肯定在范围内,因为我可以访问它的一些其他方法。