2013-05-23 1 views
1

MIPS 프로세서가있는 임베디드 보드를 작업하고 있습니다. strace를 실행하는 동안 문제가 발생했습니다.Strace가 MIPS 타겟에서 작동하지 않습니다.

빌드 환경 :

glibc version: 2.3.2 
gcc version: 3.4.4 
strace version: 4.4.94 
linux version : 2.6.34.1 

내가 MIPS 대상 및 대상에 strace를 실행하려고 크로스 컴파일 된 strace를있다. 하지만 strace가 작동하지 않습니다. 시스템 호출 추적이 표시되지 않습니다. 대상에 strace를 실행의

출력 :

#strace /bin/ls 
(To be restarted). 
# 

은 내가 strace를 가공 있도록 구성 할 몇 가지 구성 또는 플래그를 놓치고 생각합니다.

CFLAGS = "-D_REENTRANT -g -Os -fomit-프레임 포인터 -pipe -march = mips32r2 -mtune = mips32r2 -Wall -g -DHAVE_SERVICE_CTRL"

날이에 도와주세요.

+0

입력 해 주셔서 감사합니다. CFLAGS (CFLAGS = "-D_REENTRANT -g -fomit-frame-pointer -pipe -march = mips32r2 -O -Wall -DHAVE_SERVICE_CTRL")에서 Optimizer 플래그를 Os에서 -O로 변경했습니다. 이제는 시스템 호출 추적을 얻을 수 있지만 여전히 출력 결과는 큰 반환 값을 제공합니다. mode = open, "/etc/ld.so.preload", O_RDONLYDIRd/4464388-717129012 : 01 : 268633712 –

답변

0

straceptrace() 시스템 호출을 사용하여 대상 실행 파일을 추적합니다. 아마도 Linux 배포판이 ptrace()을 지원하지 않을 수 있습니다. ptrace()을 호출하는 간단한 테스트 프로그램을 만들어 작동 여부를 확인합니다.

디버깅 또한 매우 유용합니다. gdb으로 원격 디버깅을 설정하고 PC에서 타겟 보드를 디버깅 할 수 있습니다.

+0

CFLAGS = "- D_REENTRANT -g -fomit-frame-pointer -pipe -march = mips32r2에서 최적화 플래그를 제거한 후 -Wall ", strace는 제외 된 것으로 작동하기 시작합니다. –

관련 문제