| [ CnUnix ] in KIDS 글 쓴 이(By): unixboy (세탁소주인) 날 짜 (Date): 2003년 3월 5일 수요일 오후 05시 54분 05초 제 목(Title): Re: 디버거 동작원리를 좀 알고 싶은데요.. I don't know how to insert my words into your nice comments, so just what I want is your sharp sensibility to understand my poor english. Anyway, once a control falls into kernel system call such as write(), read(), open(), etc, the kernel will never release it before any kind of scheduler-assisted function is invoked like schedule(), sleep(), etc. The scheduler make an own decision which one is the next candidate to be scheduled when he takes the control, and the decision is not revealed at all to any objects in the Linux/Unix. However, when we try to use GDB 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. Then, GDB is a user process so that it cannot hack the control inside of the kernel. Just one thing questionable to me is the assistance of the GLIBC. Why? simple. GDB can only be compiled up together with GLIBC. ^^ Consequently, I DON'T KNOW HOW DEBUGGER CAN COMMUNICATE WITH THE KERNEL. This the major reason why I gonna purshcase a book "How debuggers work". Maybe, the comment made by Tony is strongly to notice, and it looks very reasonable. Thanks Tony. @@ 나비처럼 날아서 벌처럼 도배하자 @@ |