Подтвердить что ты не робот

Как я могу заставить GDB нарушить сбой утверждения GLib?

Где-то в массе кода, который я не писал (но я пытаюсь отлаживать), утверждение не выполняется в библиотеке GLib:

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

Однако GDB и код продолжают работать. Я бы хотел, чтобы GDB сломался там, где это утверждение терпит неудачу, чтобы я мог выяснить, почему он терпит неудачу. Мне больше не дают информации о том, где это утверждение. Есть ли способ заставить GDB нарушить такой отказ?

4b9b3361

Ответ 1

Перерыв g_log(). Это охватывает все случаи, такие как g_warning(), g_critical() и т.д.

Ответ 2

Вы должны добавить переменную среды следующим образом:

G_DEBUG=fatal_warnings gdb ...