Запитання з тегом «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 …
89 c  gdb 

3
Як змінити вміст пам'яті за допомогою GDB?
Я знаю, що ми можемо використовувати кілька команд для доступу та читання пам'яті: наприклад, print, p, x ... Але як я можу змінити вміст пам'яті в будь-якому конкретному місці (під час налагодження в GDB)?
87 c  linux  memory  gdb 

3
Використання gdb для одноетапного коду збірки поза вказаним виконуваним файлом викликає помилку "не вдається знайти межі поточної функції"
Я перебуваю поза цільовим виконуваним файлом gdb, і у мене навіть немає стека, який відповідає цій цілі. Я все одно хочу зробити крок, щоб я міг перевірити, що відбувається в моєму коді збірки, оскільки я не фахівець у збірці x86. На жаль, gdb відмовляється виконувати цю просту налагодження на рівні …

2
Як зробити точку зупинки GDB лише після того, як точка досягнута задану кількість разів?
У мене є функція, яка викликається якусь велику кількість разів, і зрештою segfaults. Однак я не хочу встановлювати точку зупинки для цієї функції і зупинятися після кожного виклику, оскільки я буду тут роками. Я чув, що я можу встановити counterв GDB точку зупинку, і кожен раз, коли точка зупинки потрапляє, …
85 gdb  breakpoints 

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) **908 …

4
Чи винятки “EXC_BREAKPOINT (SIGTRAP)” спричинені точками зупинки налагодження?
У мене є багатопоточна програма, яка є дуже стабільною на всіх моїх тестових машинах і, здається, є стабільною майже для кожного мого користувача (на основі скарг на збої). Додаток часто аварійно завершує роботу для одного користувача, який достатньо люб’язно надсилав звіти про збої. Усі звіти про аварії (~ 10 послідовних …


13
Як вирішити “операцію ptrace не дозволено” при спробі приєднати GDB до процесу?
Я намагаюся підключити програму за допомогою gdb, але вона повертає: Приєднання до процесу 29139 Не вдалося долучити до процесу. Якщо ваш uid відповідає uid цільового процесу, перевірте налаштування / proc / sys / kernel / yama / ptrace_scope або спробуйте ще раз як кореневий користувач. Детальніше див. У /etc/sysctl.d/10-ptrace.conf ptrace: …
80 c  linux  debugging  gdb  strace 

3
попередження: Помилка відключення рандомізації адресного простору: Операція не дозволена
що я зробив неправильно (або не зробив), що gdbне працює належним чином для мене? root@6be3d60ab7c6:/# cat minimal.c int main() { int i = 1337; return 0; } root@6be3d60ab7c6:/# gcc -g minimal.c -o minimal root@6be3d60ab7c6:/# gdb minimal GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1 . . . Reading symbols from minimal...done. (gdb) break …
79 c  docker  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.