gdb 에서 thread 생성/종료 메세지 안나오게 하기
Programming/System 2010. 8. 18. 14:15
GDB랑 멀티스레드랑 같이 사용하면 스레드 관련 메세지가 나온다
문제는 스레드가 매우자주 (뭐 1초라던가) 생겼다 없어지는 프로그램이라면...
화면에 아래와 같은 문자가 계속나와서 ...... 기존의 디버그 메세지조차 다 없애 버린다는거.....
이것도 찾아보면 금방나오네여...
(사실 저번에도 찾았는데... 그렇게 안찾이던게(?) 오늘은 한방에 찾아지네여 신기해라...
대체 저번엔 구글에서 무슨 키워드로 검색했길래 못 찾았지 ㅠㅠ)
뭐 어떤애들은 GDB소스를 뜯어고쳐서 해결하라는 -_- 애들도 있긴하던데...
이건 좀 무리... 무리...... 수정후 리컴파일은 복잡하자나.......
그래서 다음과 같은 방법을 찾음..
역시 길은 있다는.. 못찾을 뿐이지...
이제 스레드 생성/종료 이벤트 알림 메세지가 더이상 나오지 않습니다 만세!
--------------------------------------------------------------------------------------------------
GDB에서 Thread 디버깅할때 ...... 더 자세한 내용은 역시 메뉴얼 페이지를 읽어보는것이 제일 낫다..
관심있다면 한번 읽어보세요
http://sourceware.org/gdb/current/onlinedocs/gdb/Threads.html
문제는 스레드가 매우자주 (뭐 1초라던가) 생겼다 없어지는 프로그램이라면...
화면에 아래와 같은 문자가 계속나와서 ...... 기존의 디버그 메세지조차 다 없애 버린다는거.....
......
[New Thread 0xb52ceb70 (LWP 30665)]
[Thread 0xb52ceb70 (LWP 30665) exited]
[New Thread 0xb52ceb70 (LWP 30666)]
[Thread 0xb52ceb70 (LWP 30666) exited]
[New Thread 0xb52ceb70 (LWP 30667)]
[Thread 0xb52ceb70 (LWP 30667) exited]
[New Thread 0xb52ceb70 (LWP 30668)]
[Thread 0xb52ceb70 (LWP 30668) exited]
[New Thread 0xb52ceb70 (LWP 30669)]
[Thread 0xb52ceb70 (LWP 30669) exited]
[New Thread 0xb52ceb70 (LWP 30670)]
[Thread 0xb52ceb70 (LWP 30670) exited]
[New Thread 0xb52ceb70 (LWP 30671)]
......
^C
Program received signal SIGINT, Interrupt.
0xb7fe1424 in __kernel_vsyscall ()
(gdb)
[New Thread 0xb52ceb70 (LWP 30665)]
[Thread 0xb52ceb70 (LWP 30665) exited]
[New Thread 0xb52ceb70 (LWP 30666)]
[Thread 0xb52ceb70 (LWP 30666) exited]
[New Thread 0xb52ceb70 (LWP 30667)]
[Thread 0xb52ceb70 (LWP 30667) exited]
[New Thread 0xb52ceb70 (LWP 30668)]
[Thread 0xb52ceb70 (LWP 30668) exited]
[New Thread 0xb52ceb70 (LWP 30669)]
[Thread 0xb52ceb70 (LWP 30669) exited]
[New Thread 0xb52ceb70 (LWP 30670)]
[Thread 0xb52ceb70 (LWP 30670) exited]
[New Thread 0xb52ceb70 (LWP 30671)]
......
^C
Program received signal SIGINT, Interrupt.
0xb7fe1424 in __kernel_vsyscall ()
(gdb)
이것도 찾아보면 금방나오네여...
(사실 저번에도 찾았는데... 그렇게 안찾이던게(?) 오늘은 한방에 찾아지네여 신기해라...
대체 저번엔 구글에서 무슨 키워드로 검색했길래 못 찾았지 ㅠㅠ)
뭐 어떤애들은 GDB소스를 뜯어고쳐서 해결하라는 -_- 애들도 있긴하던데...
이건 좀 무리... 무리...... 수정후 리컴파일은 복잡하자나.......
그래서 다음과 같은 방법을 찾음..
역시 길은 있다는.. 못찾을 뿐이지...
$gdb ./program
Reading symbols from /home/lowid/program ...done
(gdb) set print thread-events off
(gdb) run
Reading symbols from /home/lowid/program ...done
(gdb) set print thread-events off
(gdb) run
이제 스레드 생성/종료 이벤트 알림 메세지가 더이상 나오지 않습니다 만세!
--------------------------------------------------------------------------------------------------
GDB에서 Thread 디버깅할때 ...... 더 자세한 내용은 역시 메뉴얼 페이지를 읽어보는것이 제일 낫다..
관심있다면 한번 읽어보세요
http://sourceware.org/gdb/current/onlinedocs/gdb/Threads.html
'Programming > System' 카테고리의 다른 글
터미널에서는 GDB가 아니라 CGDB를 씁시다. (4) | 2010.09.11 |
---|---|
gdb에서 core dump 디버깅 (2) | 2010.09.08 |
mmap 사용시 알아둘 사항 (버스오류) (0) | 2010.05.31 |
FAT12과 FAT16의 부트레코드의 구성이 같은모양인가 보다 (2) | 2007.07.27 |
부트섹터에서 프로그램 실행시키기. (14) | 2007.07.21 |