У меня есть программа на C, в которой функция main создает потоки, и мне нужно отладить один поток.Я использую GDB для него же.Однако я не могу «ломать» или «смотреть» переменные на определенных C-файлах этой программы.Например,Мой поток 6 запрограммирован и использует определенные C-файлы, и мне приходится прерывать строку 601, скажем, call_connect.c.Это не возможно?Если я попытаюсь, это то, что происходит:
(gdb) info threads
6 Thread 0xb5c96b70 (LWP 3608) 0xb7fe1424 in __kernel_vsyscall ()
5 Thread 0xb6497b70 (LWP 3607) 0xb7fe1424 in __kernel_vsyscall ()
4 Thread 0xb6c98b70 (LWP 3606) 0xb7fe1424 in __kernel_vsyscall ()
3 Thread 0xb7499b70 (LWP 3605) 0xb7fe1424 in __kernel_vsyscall ()
2 Thread 0xb7c9ab70 (LWP 3604) 0xb7fe1424 in __kernel_vsyscall ()
* 1 Thread 0xb7c9b6c0 (LWP 3603) 0x0804a178 in main ()
(gdb) break 601 thread 6
No line 601 in file "events.c".
(gdb) break call_connect.c:601 thread 6
No source file named call_connect.c.
Также я отлаживал свой код C с помощью -O0 -ggdb и все еще не могу наблюдать за переменными.Это то, что я получаю, когда пытаюсь прочитать переменную char * ptext .
(gdb) print ptext
No symbol "ptext" in current context.
(gdb) watch ptext
No symbol "ptext" in current context.
Может кто-нибудь помочь, пожалуйста?