2012-07-02 3 views
1

내 코드에서 일부 기능을 디버깅하려고합니다. 불행하게도, gdb는 시스템에서 사용할 수 없기 때문에 현재는 디버그가 printk 메시지 (리눅스 커널 드라이버)에 의해 수행됩니다.어디에서 함수가 호출되었는지 어떻게 알 수 있습니까?

일부 매개 변수로 호출되는 함수가 있습니다. 함수를 호출 한 사람과 방법을 알 수 있는지 알고 싶습니다.

감사합니다.

답변

1

:

은 보라.

vim에서 cscope fc Function_name을 사용하면 호출 추적을 얻을 수 있습니다.

Windows에서는 Source Insight를 시도 할 수 있습니다.

1

GCC는 __builtin_return_address 기능을 제공합니다.
__builtin_return_address(0)은 호출 기능 내에서 호출 사이트 주소를 제공해야합니다. /proc/kallsyms에서 가장 가까운 값을 검색하여 함수를 찾으십시오.

1

커널 코드에서 dump_stack()을 호출하는 것이 좋습니다.

관련 문제