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

Используйте этот тег для проблем, связанных с GDB, стандартным отладчиком программной системы GNU.

4
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 breakpoint address now. (gdb) run Starting program: …
89 c  gdb 


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

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

4
Исключения «EXC_BREAKPOINT (SIGTRAP)» вызваны точками останова отладки?
У меня есть многопоточное приложение, которое очень стабильно на всех моих тестовых машинах и кажется стабильным почти для каждого из моих пользователей (на основе отсутствия жалоб на сбои). Однако приложение часто дает сбой для одного пользователя, который любезно отправил отчеты о сбоях. Все отчеты о сбоях (~ 10 последовательных отчетов) …

8
Почему GDB непредсказуемо перескакивает между строками и выводит переменные как «<оптимизированное значение>»?
Может ли кто-нибудь объяснить такое поведение gdb? 900 memset(&amp;new_ckpt_info,'\0',sizeof(CKPT_INFO)); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_** HDR),i_offset); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_ HDR),i_offset);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) …

1
Почему адрес __libc_start_main всегда один и тот же внутри GDB, даже если ASLR включен?
Breakpoint 1, 0x00007ffff7de8060 in __libc_start_main () from /usr/lib/libc.so.6 (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /home/firstlove/projects/org-ioslide/example/a.out Breakpoint 1, 0x00007ffff7de8060 in __libc_start_main () from /usr/lib/libc.so.6 (gdb) r The program being debugged has been started already. Start it …
16 c  linux  gdb  libc  aslr 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.