2010년 5월 19일 수요일

정체불명의 로그 추적하기.

개발 중 재현이 어려운 문제를 해결하기 위해 logger box를 사용한 몇 주간의 exposure test 끝에 문제를 재현하였는데 도대체 누가 출력했는지 알 수 없는 로그가 발견되었다. 이걸 어떤 모듈(실행중인 프로그램)에서 출력하는지 손쉽게 알 수 있는 방법이 없을까 고민하다가 아래와 같은 방법을 사용하였다.

bash-2.03$ find . -exec strings {} -f \; | grep "XXXX"

도대체 사용할 일 없어보였던 strings 명령을 실전에 최초로 사용한 케이스 되겠다.

보너스로, 특정 바이너리가 사용하는(필요로하는) so파일 찾는 법은 아래와 같다.

bash-2.03$ readelf -a binaryname | grep NEEDED