c++ - 如何找出失败断言的位置?(在 Unity 中调用 debug-build DLL)
问题描述
编写 C++ DLL 以从 Unity3D 使用。如果我将 DLL 构建为发行版,我目前会得到一些未定义的行为废话。如果构建为调试构建,则会显示以下弹出窗口:
不幸的是,错误重定向到向量类,而不是我自己的代码中实际使用它的地方。我知道是什么 DLL 函数导致了这种情况,但我不知道为什么会发生这种情况,因为有很多向量处理。我确实怀疑一些多线程问题。
但是,我如何找出哪个特定行,也就是哪个断言失败?我似乎无法使用 try-catch 块捕获断言。
非常感谢提前:)
解决方案
事实证明,可以使用附加的 DLL 将 Unity 编辑器作为一个整体进行调试。
- 找出实际编辑器的位置(在 Unity Hub 中安装选项卡的右键菜单中)
- 使用 Visual Studio 打开该 EXE(字面意思是“打开项目”选项)
- 转到解决方案属性-> 参数并添加:-projectPath "PATH_TO_YOUR_UNITY_PROJECT_DIRECTORY"
- 调试 -> 开始调试(或 F5)
- 如果您收到断言等,请单击“重试”。
第 3 步很重要,因为无论出于何种原因,如果作为调试启动,Unity 不会显示“打开项目”选项,而是会自行关闭。这就是让我认为不支持外部调试的原因。
推荐阅读
- java - 如何在spring boot jar中根据环境加载属性
- pandas - 如何使用 Pandas 为列中的值添加超链接?
- go - SendGrid SMTP emails are not delivered to CC and BCC addresses in Go
- flutter - 如何将特定元素与列小部件内的左侧对齐
- react-native - 在 react-native 中离开屏幕时,我应该如何断开与 signalR 的连接
- firebase - 如何修复 RenderPointerListener 对象在布局期间被赋予无限大小?
- html - 固定位置导航栏覆盖标题
- java - 我的 MainActivity 在使用 android 旧版本(例如 oreo)时滞后,但在最新版本中运行良好,如何解决?
- javascript - 遍历从 ajax / json 接收到的数据
- python - 在 fastai/pytorch 中获取学习者的预测