CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): dkkang (압셍트)
날 짜 (Date): 2003년 3월  5일 수요일 오후 08시 16분 15초
제 목(Title): Re: 디버거 동작원리를 좀 알고 싶은데요..


> just for debugging purpose, we should be able to make 
> a brake at an arbitrary position in the source code,
> such an information should be buried into the kernel
> so that the fucking scheduler can release the 
> control back to the user task, processes, daemons, etc.

쩝, 죄송합니다만 한 다섯번 정도 반복해서 읽어봤는 데. 오히려 저 스스로 다 
많은 걸 모르고 있었다는 생각이 드네요. 
제가 유닉스 쪽으로 내공이 부족한지 여전히 이해가 잘 안가네요. 좀 더 쉽고 
자세하게 ^^;

일단 gdb가 부모가 된 상황에서 디버그할 프로그램을 자식으로 로드하겠죠. 
그리고 나서, 디버그할 프로그램의 브레이크 포인트를 넣어야 할 때, 커널에 
있어야 하는 그러한 정보란게 뭔가요?
왜냐면 일단 자식 프로그램을 로드하고 나면 최근에 실행된 위치만 안다면 그 
다음의 임의의 위치에 브레이크 포인트를 넣는 건 문제가 안될 거 같다는 
막연한 생각이 드는 데요. 
커널에 있는 정보를 가져오는 거는 권한이 낮은 유저 프로세스에게도 허용되는 
경우가 많이 있는 데, 설령 그렇지 않더라도 그게 시스템 콜을 가로채는 거하고 
어떻게 연관이 되는지 잘 이해가 안가네요. 

Tony님이 말씀하신 ptrace는 제가 보기엔 결국 커널 수준에서 디버거들을 
위해서 디버깅을 지원하는 라이브러리 같군요.

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.