다중 스레드 (pthreads)로 디버깅 할 때 GDB에 심각한 문제가 있습니다. * nix에 C/C++ 용으로 좋은 멀티 스레드 디버거가 있습니까?다중 스레드 디버거
답변
내 검색에서 * nix에 대한 좋은 멀티 스레드 디버거를 찾지 못했습니다. GDB가 나아지고있는 것처럼 보였고 FreeBSD (7.0-RELEASE)에서 다중 스레드 응용 프로그램을 디버깅해야했던 마지막 순간에 오류가 발생한 위치를 알 수있게되어 꽤 잘 작동했습니다.
한 번 gdb 대안을 찾았지만, 불행히도 내가 찾은 모든 것은 gdb를 기반으로했습니다. 나는 gdb가 gcc에 복잡하게 묶여 있기 때문에 써드 파티 디버거가 모든 gcc 변경 사항을 따라 잡기가 어렵다고 생각합니다.
TotalView은 거대한 클러스터에 대해 국가 연구실에서 사용하는 것입니다. 스레드 병렬 처리에 대한 지원도 훌륭하다고 생각합니다. 아마 가격 범위를 벗어난 것이지만 무료로 사용해 볼 수 있습니다.
멀티 스레드 응용 프로그램을 디버깅 할 때 GDB 관련 문제가 개인적으로 발생하지 않았으므로 정확하게 "문제"에 대해 자세히 설명하는 것이 좋습니다. 그것은 우리가 당신에게 더 잘 대답하는 데 도움이 될 것입니다.
Linux에서 멀티 스레드 응용 프로그램을 디버깅 할 때 과거에 사용했던 몇 가지 보조 기능이 있습니다. 대부분의 기능은 대체하지 않고 GDB를 기반으로합니다. 이들은 다음을 포함한다 :
- DDD에게 http://www.gnu.org/software/ddd/
- 이클립스 http://www.eclipse.org/
- 원시 POSIX 스레드 라이브러리 (NTPL) 추적 도구를 http://nptltracetool.sourceforge.net/
또한 리눅스에서 디버깅 할 새로운 (그리고 심지어 경우 경우 그렇지 않습니다!) 여기에서 찾을 수있는 "Linux 응용 프로그램 디버깅"이라는 제목의 논문을 적극 권장합니다.
http://www.scribd.com/doc/3009706/Debugging-Linux-Applications
Allinea DDT ... C, C++ 및 Fortran으로 작성된 스칼라, 멀티 스레드 및 대규모 병렬 응용 프로그램을위한 그래픽 디버거.
Windows 용 AIX 디버거는 다중 스레드 응용 프로그램을 디버그합시다.
'gdb'태그가 지정되어야합니다. – jfm3
여러 번 instanctiated 스레드 클래스를 디버깅하는 데 문제가있는 것 같습니다 (분할 오류). 그것은 나입니까, 아니면 GDB의 잘못입니까? 런타임에 나는 어떤 seg faults도 가지고 있지 않다. –
당신은 그런 것을 위해 새로운 질문을 게시 할 필요가있다, Yan. 또한, 그렇게 할 때/* 더 많은 정보를 제공 할 것을 권합니다. 문제 해결에 도움이되는 유용한 정보는 제공하지 않았습니다. – ELLIOTTCABLE