2012-06-15 2 views
1

현재 GDB는 포크 후 자식 프로세스에 다음과 같은 문제가 있습니다. 저작물의 주위에 나는 온라인으로 본 다음 명령 패치를 사용하는 것입니다 : - 다음과 같이gdb를 사용하여 BSD에서 디버깅 포크

call 0x8048740 <[email protected]>

을 : -

gdb$ set *(0x08048d1f+1)=0x90909090 
gdb$ set *(0x08048d1f)=0x9090c033 

이렇게이 같은 지침을 설정합니다 -

xor eax,eax 
nop  
nop  
nop 

결과적으로 자식으로 실행될 것으로 예상되는 코드는 부모에 의해 실행되고이를 디버깅 할 수 있습니다. 그러나 프로세스를 디버깅 할 때마다 두 단계 문을 입력하는 것은 너무 지루합니다. 프로세스에 연결할 때마다 gdb가 지침을 패치하도록 지시 할 수있는 방법이 있습니까? 어떤 종류의 자동화가 제한적일까요?

답변

2

gdb extensions을 사용하여 GDB 명령 목록을 확장하는 방법에는 여러 가지가 있습니다. 파이썬 스크립트 지원은 7.1 릴리스 이후 GDB의 최신 개발입니다. 그러나 요구 사항을 살펴보면 많은 스크립팅이 필요하지 않습니다. 가장 간단한 define 명령을 사용할 수 있습니다.

나는 약간의 시간이 지난 후에 similar question에 대답했다. 같은 접근법을 사용할 수있다.

+0

완벽! 정확히 내가 뭘 찾고 있었는지 고마워! –

관련 문제