如何让GDB打破GLib断言失败?

时间:2011-04-26 04:22:00

标签: debugging gdb glib

在我编写的大量代码中的某处(但我正在尝试调试),GLib库中的断言失败:

(process:31987): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed

然而,GDB和代码仍在继续。我希望GDB能够打破这个断言失败的地方,这样我才能找出它失败的原因。我没有得到关于这个断言在哪里的更多信息。有没有办法让GDB在这样的失败中突破?

2 个答案:

答案 0 :(得分:24)

您应该添加如下环境变量:

G_DEBUG=fatal_warnings gdb ...

答案 1 :(得分:18)

休息g_log()。这涵盖了g_warning()g_critical()等所有情况。