Вопросы с тегом «gdb»

93
Проверка содержимого стандартного контейнера (std :: map) с помощью gdb

Предположим, что есть что-то вроде этого: #include <map> int main(){ std::map<int,int> m; m[1] = 2; m[2] = 4; return 0; } Я хотел бы иметь возможность проверить содержимое карты, запускающей программу из gdb. Если я попробую использовать оператор индекса, я получу: (gdb) p m[1] Attempt...

92
Как автоматически запустить исполняемый файл в GDB?

Я бы хотел gdbсразу запустить исполняемый файл, как если бы я набрал «запустить» (мотивация: мне не нравится печатать «запустить»). Один из способов - передать команду gdbтак: $ echo run | gdb myApp Но проблема с этим подходом в том, что вы теряете интерактивность gdb, например. если срабатывает...

90
В чем разница между gcc -ggdb и gcc -g

Когда я использую gcc для компиляции программ на C, я обычно использую -gдля получения некоторой отладочной информации в файл elf, чтобы gdb мог мне помочь в случае необходимости. Однако я заметил, что некоторые программы используют -ggdb, поскольку это должно сделать информацию отладки более...

89
GDB: прервать, если переменная равна значению

Мне нравится заставлять GDB устанавливать точку останова, когда переменная равна некоторому установленному мной значению, я пробовал этот пример: #include <stdio.h> main() { int i = 0; for(i=0;i<7;++i) printf("%d\n", i); return 0; } Вывод из GDB: (gdb) break if ((int)i == 5) No default...

86
Использование gdb для пошагового ассемблерного кода за пределами указанного исполняемого файла вызывает ошибку «не удается найти границы текущей функции»

У меня нет целевого исполняемого файла gdb, и у меня даже нет стека, соответствующего этой цели. В любом случае я хочу пошагово, чтобы я мог проверить, что происходит в моем коде сборки, потому что я не эксперт в сборке x86. К сожалению, GDB отказывается выполнять эту простую отладку на уровне...

85
Как сделать так, чтобы точка останова GDB прерывалась только после того, как точка была достигнута заданное количество раз?

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

85
Исключения «EXC_BREAKPOINT (SIGTRAP)» вызваны точками останова отладки?

У меня есть многопоточное приложение, которое очень стабильно на всех моих тестовых машинах и кажется стабильным почти для каждого из моих пользователей (на основе отсутствия жалоб на сбои). Однако приложение часто дает сбой для одного пользователя, который любезно отправил отчеты о сбоях. Все...

84
Почему GDB непредсказуемо перескакивает между строками и выводит переменные как «<оптимизированное значение>»?

Может ли кто-нибудь объяснить такое поведение gdb? 900 memset(&new_ckpt_info,'\0',sizeof(CKPT_INFO)); (gdb) **903 prev_offset = cp_node->offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb->shm_addr.ckpt_addr+sizeof(CKPT_** HDR),i_offset); (gdb) **903 prev_offset =...