Visual Studio - Android - GDB 意外退出,退出代码为 -1073741571 (0xC00000FD):加载符号时

Visual Studio - Android - GDB exited unexpectedly with exit code -1073741571 (0xC00000FD) : While Loading Symbols

我在 Visual Studio 2019 Community Edition 中设置了一个 C++ gradle 应用,目标 Android。我正在使用 NDK 20(Microsoft android sdk 存储库中的最新版本)。

此应用程序由几个 .so 库(SDL2、SDL2_image、SDL2_ttf、WolfSSL、MyGameCode、MyGameLibrary、MiscellaneousExternalDependencies.a)组成,似乎都可以编译并且 运行 正确。我遇到的问题是附加一个断点并看到 GDB 试图加载关联的符号。所以(在这种情况下,我的游戏代码特别)。

我做了一些测试,发现如果我删除所有游戏代码,我可以只使用我的库和所有其他依赖项来设置断点。我也测试过,发现包括我的大部分游戏文件仍然是 运行s。但是我有大约 10 个文件,如果我删除它们,一切似乎都可以正常加载。当我有一个允许命中断点的精简版项目时,加载符号大约需要 42 秒。

它似乎是项目中的全部符号,而不是应用程序生命周期中的任何特定代码 运行ning,因为我在 C++ 中指定了一个主要功能,它不会加载我的任何游戏代码,只是 运行这是一个简单的 SDL2 测试,只需更改项目中包含的文件数量,我就可以重现或消除 GDB 崩溃。

我应该注意到,我的项目似乎 运行 在没有附加调试器的情况下运行良好,而且我可以看到我试图在其中设置断点的 C++ 模块的输出。我遇到的问题仅限于当我尝试连接 GDB 并通过 Visual Studio 访问断点时。那时我在符号加载过程中出现了堆栈溢出(或者可能是超时?)。

我的问题有几个要点:

基本上我不知道为什么它在为我的 .so 文件加载符号时崩溃

我在此处提供了更多详细信息,包括 link 我的项目和确切的测试方法,但这个问题的全部要点都在 post。

https://developercommunity.visualstudio.com/content/problem/898890/gdb-exited-unexpectedly-with-exit-code-1073741571.html

事实证明,将我的 Microsoft 托管 NDK 版本 20.0.5594570 中的 gdb.exe 和 gdb-orig.exe 文件替换为我从此处下载 NDK 21 获得的文件解决了问题(r21 在写作时间):https://developer.android.com/ndk/downloads

一定有一个缺陷最近已在 GDB 本身中解决,并且与我的项目大小 and/or 组合有问题。然而,NDK r21 捆绑版本的 GDB 工作完美。