До тех пор, пока я не начал использовать Arch linux пару недель назад, gdb будет оценивать многострочные if-заявления атомарно. Поэтому для условия, как это:Создание gdb оценивает многострочный или составной оператор if сразу
39523 if ((RM != NULL) &&
39524 (RM->DefaultC != NULL) &&
39525 (MSched.RemapC != NULL) &&
39526 (RM->DefaultC->FType != mqftRouting) &&
39527 (RM->DefaultC != MSched.RemapC))
39528 {
...
...
39728 } /* END if ... */
39732 if (ClassFound != TRUE)
39733 {
Единственное, я хотел бы видеть в БГД (если я явно не сделал команду список) был в первой строке:
39523 if ((RM != NULL) &&
(gdb)
Теперь я видя следующие:
39523 if ((RM != NULL) &&
(gdb)
39524 (RM->DefaultC != NULL) &&
(gdb)
39523 if ((RM != NULL) &&
(gdb)
39525 (MSched.RemapC != NULL) &&
(gdb)
39523 if ((RM != NULL) &&
(gdb)
39526 (RM->DefaultC->FType != mqftRouting) &&
(gdb)
39523 if ((RM != NULL) &&
(gdb)
39527 (RM->DefaultC != MSched.RemapC))
(gdb)
39523 if ((RM != NULL) &&
(gdb)
39732 if (ClassFound != TRUE)
Я вижу, что такое поведение желательно, но я предпочел бы его настроить. Кто-нибудь знает возможно ли это? Я использую gdb 6.7.1, построенный из источника. Я использовал эту точную версию, построенную из того же источника, в моей системе Ubuntu, прежде чем переключиться на Arch.
Edit: я вижу такое же поведение при использовании GDB --tui
Gcc --version на моей системе арки:
gcc (GCC) 4.4.2
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
НКУ --version на моей системе Ubuntu:
gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Ваш выход GDB не соответствует вашему источнику. Не могли бы вы вырезать/вставить * фактический * выход GDB. Кроме того, это, вероятно, связано с версией GCC, которую вы использовали, пожалуйста, определите, что это такое. –
Я сделаю это на работе завтра, сегодня я отсутствовал. – alesplin