有人知道当从gdb调用一个给定变量的漂亮打印机时,该如何判断它是否有效。在
例如我的一个漂亮的打印机gdb.parse_和_eval这会导致gdb崩溃,除非变量已初始化。在
TestPrettyPrint::TestPrettyPrint(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
QFile f("C:/Log.txt");
}
如果我把一个断点放在第一行并尝试检查'f'gdb崩溃。如果我在“f”被创建之后加一个断点,一切都会好的。在
任何信息都会非常有用
谢谢
无法判断变量是否有效。在
首先,此信息在调试信息中不可用。准确地说,有一个DWARF的GCC扩展来提供这些信息,但是它并没有被很好地指定,也不能真正起作用;而且无论如何,它也没有在GDB中公开给Python。在
第二,即使有信息,也不能解决问题。任何记忆都会被一个错误毁掉。在
答案是漂亮的打印机要有适应性。您可以使用现有的“打印”设置来限制发出的垃圾量。在
如果gdb崩溃,那么这是一个gdb错误,应该报告。我知道bugzilla已经有类似的东西了,尽管IIRC没有复制指令。这是最重要的事情,以便修复错误。在
相关问题 更多 >
编程相关推荐