首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试原生Android时的SIG33

调试原生Android时的SIG33
EN

Stack Overflow用户
提问于 2015-12-03 16:33:17
回答 3查看 2.1K关注 0票数 12

我正在使用Android Studio调试一个用C++编写的NativeActivity应用程序

在我的C++代码中,我在android_main()中做的第一件事是等待10秒,以便附加调试器。在“Debug”窗口中,我看到:

代码语言:javascript
复制
Now Launching Native Debug Session

几秒钟后

代码语言:javascript
复制
Debugger attached to process 28458

然后在它连接之后,调试器就会停止,并发出一个信号:

代码语言:javascript
复制
Signal: 33 (signal SIG33)

我按下“恢复程序”,然后我一次又一次地收到相同的信号7-8次。在那之后,程序如预期的那样继续运行,附加了调试器,我能够在断点处停止它。

这个SIG33是什么意思?我怎样才能防止它呢?

EN

回答 3

Stack Overflow用户

发布于 2015-12-12 01:12:57

信号33由bionic内部使用,用于回溯设施。

参见comment in __libc_current_sigrtmin.cpp

代码语言:javascript
复制
// POSIX timers use __SIGRTMIN + 0.
// libbacktrace uses __SIGRTMIN + 1.
// libcore uses __SIGRTMIN + 2.

请参阅genericarmx86mips__SIGRTMIN定义。

代码语言:javascript
复制
#define __SIGRTMIN 32

我认为SIG33是由gdb引起的,gdb没有正确地忽略它。

票数 6
EN

Stack Overflow用户

发布于 2015-12-12 17:16:20

SIG33由LLDB用来表示“线程库”。

摘自LLDB源代码:

代码语言:javascript
复制
AddSignal (33, "SIG33", false, false, false, "threading library internal signal 2");

但是我似乎不理解为什么你的代码会得到这样的结果。可能是由于一些小的依赖问题。

票数 1
EN

Stack Overflow用户

发布于 2018-03-13 17:42:00

可以使用以下GDB命令行忽略和/或静默这些内容:

代码语言:javascript
复制
handle SIG33 nostop noprint
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34061144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档