Вывод GDB запускает потоки, но дает на выходе - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть некоторый код, который segfaults после нескольких строк вывода.Но когда я запускаю код на gdb примерно так:

(gdb) r < err.in

я получаю следующее

Starting program: /Users/prikshetsharma/Downloads/parser/parse < err.in                                                                   
[New Thread 0xf03 of process 39241]                                                                                             
[New Thread 0xc03 of process 39241]   

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

- Правка -

Происходит интересная вещь.Иногда GDB дает вывод, а иногда нет, хотя я ничего не меняю.Когда он выдает результат, он делает следующее:

Starting program: /Users/prikshetsharma/Downloads/parser/parse < err.in                                                                                                                                                                                                                                                       
[New Thread 0x1003 of process 39841]                                                                                                                                                                                                                                                                                          
[New Thread 0x1103 of process 39841]                                                                                                                                                                                                                                                                                          
[New Thread 0x1503 of process 39841]                                                                                                                                                                                                                                                                                          
warning: `/BuildRoot/Library/Caches/com.apple.xbs/Binaries/Libc_darwin/install/TempContent/Objects/Libc.build/libsystem_darwin.dylib.build/Objects-normal/x86_64/bsd.o': can't open to read symbols: No such file or directory.                                                                                               
warning: `/BuildRoot/Library/Caches/com.apple.xbs/Binaries/Libc_darwin/install/TempContent/Objects/Libc.build/libsystem_darwin.dylib.build/Objects-normal/x86_64/darwin_vers.o': can't open to read symbols: No such file or directory.                                                                                       
warning: `/BuildRoot/Library/Caches/com.apple.xbs/Binaries/Libc_darwin/install/TempContent/Objects/Libc.build/libsystem_darwin.dylib.build/Objects-normal/x86_64/dirstat.o': can't open to read symbols: No such file or directory.                                                                                           
warning: `/BuildRoot/Library/Caches/com.apple.xbs/Binaries/Libc_darwin/install/TempContent/Objects/Libc.build/libsystem_darwin.dylib.build/Objects-normal/x86_64/dirstat_collection.o': can't open to read symbols: No such file or directory.                                                                                
warning: `/BuildRoot/Library/Caches/com.apple.xbs/Binaries/Libc_darwin/install/TempContent/Objects/Libc.build/libsystem_darwin.dylib.build/Objects-normal/x86_64/err.o': can't open to read symbols: No such file or directory.                                                                                               
warning: `/BuildRoot/Library/Caches/com.apple.xbs/Binaries/Libc_darwin/install/TempContent/Objects/Libc.build/libsystem_darwin.dylib.build/Objects-normal/x86_64/exception.o': can't open to read symbols: No such file or directory.                                                                                         
warning: `/BuildRoot/Library/Caches/com.apple.xbs/Binaries/Libc_darwin/install/TempContent/Objects/Libc.build/libsystem_darwin.dylib.build/Objects-normal/x86_64/init.o': can't open to read symbols: No such file or directory.                                                                                              
warning: `/BuildRoot/Library/Caches/com.apple.xbs/Binaries/Libc_darwin/install/TempContent/Objects/Libc.build/libsystem_darwin.dylib.build/Objects-normal/x86_64/mach.o': can't open to read symbols: No such file or directory.                                                                                              
warning: `/BuildRoot/Library/Caches/com.apple.xbs/Binaries/Libc_darwin/install/TempContent/Objects/Libc.build/libsystem_darwin.dylib.build/Objects-normal/x86_64/stdio.o': can't open to read symbols: No such file or directory.                                                                                             
warning: `/BuildRoot/Library/Caches/com.apple.xbs/Binaries/Libc_darwin/install/TempContent/Objects/Libc.build/libsystem_darwin.dylib.build/Objects-normal/x86_64/stdlib.o': can't open to read symbols: No such file or directory.                                                                                            
warning: `/BuildRoot/Library/Caches/com.apple.xbs/Binaries/Libc_darwin/install/TempContent/Objects/Libc.build/libsystem_darwin.dylib.build/Objects-normal/x86_64/string.o': can't open to read symbols: No such file or directory.                                                                                            
warning: `/BuildRoot/Library/Caches/com.apple.xbs/Binaries/Libc_darwin/install/TempContent/Objects/Libc.build/libsystem_darwin.dylib.build/Objects-normal/x86_64/variant.o': can't open to read symbols: No such file or directory.      

, за которым следует обычный вывод программы.Это странно.

1 Ответ

0 голосов
/ 27 сентября 2019

И GDB просто застревает здесь.

Скорее всего, причина: ваша программа имеет ошибку (мы уже знаем, что это происходит, так как она аварийно завершается), и взаимоблокировки при работе под GDB (не неожиданно: GDB может влиять на время выполнения потоков).

Как это исправить?

Используйте Control-C, чтобы прервать вашу программу, выясните где заблокирован, исправьте ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...