| [ CnUnix ] in KIDS 글 쓴 이(By): unixboy (세탁소주인) 날 짜 (Date): 2003년 3월 5일 수요일 오후 02시 52분 21초 제 목(Title): Re: 디버거 동작원리를 좀 알고 싶은데요.. Undocumented DOS에는 그렇게 나오는데요. 그래서 Undocumented Windows를 야심을 가지고 샀더니 맨 kernel API만 늘어놓고, 너한번 잘해봐라.. 식이더군요. 그래서, GDB를 한번 볼까 했거던요? 포기했습니다. 대강을 생각해보면, 아마 하나의 실행공간을 만들텐데, system call을 가로채는 것은 어떻게 구현이 되는지 조금 의문이 갑니다. multi-thread인 경우에는 clone() API를 뭘로 대체했는지.. 아님.. 실제로 운영체제에 effect 를 그대로 주는 것이라면.. 흠.. gdb 를 통해서 디버깅을 하다가 꿱~ 하고 죽어버리는 경우도 생길것 같은데요... 아마도, system call이라는 것이 결국에는 glibc에 정의된 API 의 mapping list를 통해서 가니까, gdb거 glibc와 항상 같이 컴파일되는 것으로 봐서는 결국엔 DOS시절의 INT 3과 같은 방식일 것 같기도 하고요.. 좌우간, 아리송입니다. 아리송해... (옛날에 노래도 있지않나요? "아리송해~~ 어제한 그말이 아리송해~~~ 아하ㅏ하하~" - 이은하) 누군가 그러더군요. OS를 모두 알고싶다면... 디버거를 먼저봐라...그리고나서 한참을 영어로 씨부리는 바람에 왜 그래야하냐고 질문을 못했습니다. -- @@ 나비처럼 날아서 벌처럼 도배하자 @@ |