Debugging 如何在android本机代码中回溯跟踪

Debugging 如何在android本机代码中回溯跟踪,debugging,android-ndk,native-code,Debugging,Android Ndk,Native Code,我的Apk在epoll_wait收到信号。我无法找出调用此函数的代码部分。我知道这是libc的一部分。它告诉我这个epoll_等待的行号。当我尝试addr2line工具时,运气不太好 ./toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi- addr2line -C -f -e ~/SoxPlayer/obj/local/armeabi/libc.so 0xafd0c75c

我的Apk在epoll_wait收到信号。我无法找出调用此函数的代码部分。我知道这是libc的一部分。它告诉我这个epoll_等待的行号。当我尝试addr2line工具时,运气不太好

 ./toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-   addr2line -C -f -e ~/SoxPlayer/obj/local/armeabi/libc.so  0xafd0c75c
??
??:0
这就是我得到的。。 我想知道我的代码中的哪一部分分叉了调用epoll_wait的线程1

    Thread [1] (Suspended: Signal 'SIGSTOP' received. Description: Stopped (signal).)   
3 epoll_wait()  0xafd0c75c  
2 <symbol is not available> 0xa8125706  
1 <symbol is not available> 0xa8125706  
这里没有太多信息。 gdb也将提供相同的信息。ndk堆栈工具不会有帮助,因为我没有这种工具所需要的sigev故障或应用程序崩溃。我的apk正在等待代码中的信号事件。但是我可以使用什么工具来获取谁在我的代码中调用epoll_wait呢。我能够看到我的代码中发生了什么,但无法精确地指出调用此epoll_wait的确切位置。我需要一个工具的建议,我可以用它来解决这个问题


谢谢

您试过在gdb下运行它吗?当收到信号时,gdb将中断,您可以检查其他线程正在做什么…您是否尝试在gdb下运行它?gdb将在收到信号时中断,您可以检查其他线程正在执行的操作。。。