2013-03-05 5 views
2

주소별로 공유 라이브러리에 중단 점을 설정하려면 어떻게해야합니까? 의 내가 라이브러리를 분해하고 난에 침입하려는 명령을 찾을 수 있지만, 명령이 레이블과 연관되지 않은 가정 해 봅시다 :GDB와 공유 라이브러리의 주소로 중단 점 설정

$ objdump를 -d libFoo.so

...

bc29a:  48 89 f5    mov %rsi,%rbp 

...

라이브러리를로드 한 후 ELF 파일 주소 (bc29a)를 올바른 가상 주소로 변환하는 가장 좋은 방법은 무엇입니까? 그리고이 정보를 어떻게 GDB에 전달할 수 있습니까?

도움 주셔서 감사합니다.

+0

왜 함수에서 오프셋에서 중단 점을 설정하지 않습니까? 'b * (function_name + offset) '처럼? –

답변

1

아마도 가장 간단한 방법은 "stop-on-solib-events 1"을 설정하는 것입니다. 이렇게하면 공유 라이브러리가로드되거나 언로드 될 때마다 gdb가 중지됩니다. 원하는 라이브러리를로드하면 중단 점을 설정할 수 있습니다.

그런 다음 "info shared"를 사용하여 각 라이브러리에 대한 오프셋을 볼 수 있습니다. 이것이 텍스트 섹션의 오프셋인지 여부를 잊어 버렸습니다. 그래서 조금 실험 할 필요가 있습니다.

관련 문제