调试本机Android时使用SIG33
SIG33 when debugging native Android
我正在使用Android Studio调试用C++编写的NativeActivity应用程序
在我的C++代码中,我在android_main()
中做的第一件事就是等待10秒,等待调试器附加。在"调试"窗口中,我看到:
Now Launching Native Debug Session
几秒钟后
Debugger attached to process 28458
然后,在它连接之后,调试器就会停止,并发出一个信号:
Signal: 33 (signal SIG33)
我按下"恢复程序",然后我得到相同的信号,一次又一次7-8次。之后,程序按预期继续运行,附加了调试器,我可以在断点处停止它。
SIG33是什么意思?我该如何预防?
Signal 33由bionic内部用于回溯设施。
参见__libc_current_sigrtmin.cpp.中的注释
// POSIX timers use __SIGRTMIN + 0.
// libbacktrace uses __SIGRTMIN + 1.
// libcore uses __SIGRTMIN + 2.
有关泛型、arm、x86和mip,请参阅__SIGRTMIN
的定义。
#define __SIGRTMIN 32
我认为SIG33是由gdb引起的,gdb没有正确地忽略它。
可以使用以下GDB
命令行忽略和/或静音:
handle SIG33 nostop noprint
SIG33用于LLDB发出关于"线程库"的信号。
LLDB摘录来源:
AddSignal (33, "SIG33", false, false, false, "threading library internal signal 2");
但我似乎不明白您的代码出现这种情况的原因。可能是由于一些小的依赖性问题。
相关文章:
- 从C++本机插件更新Vector3数组
- GCC本机矩阵运算库
- VC++本机单元测试,找不到调试符号
- 在这种情况下,java对象是否可以调用本机函数
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 无法将标准库导入本机 android 项目中的头文件
- 使用本机 C++ 应用程序中的 C# 代码
- 在nodejs中使用本机代码的最佳方法是什么?
- 如何告诉本机节点模块所需的dll存储在哪里?
- 在自定义程序中使用本机 Windows 自然顺序排序
- 如何在C++非托管/本机 DLL 中从注册免费 COM C# 托管 DLL 创建 COM 对象
- MS 本机单元测试 - 断言::线程失败不起作用
- 将音频从浏览器流式传输到WebRTC本机C++应用程序
- Winapi - SetWindowLongPtr in ShutdownBlockReason创建/销毁JNI本机代码
- C++/CLI 混合托管/本机 DLL 不起作用
- 子系统中的异常处理:本机
- 多次调用本机方法时出现致命错误
- 如何使用 Malloc 调试来检查本机内存泄漏?
- 调试本机Android时使用SIG33