添加新行时工作代码引发异常.调试技巧?
Working code throwing exception when new lines added. Debugging tips?
我正在研究一个专有的代码库,所以我必须抽象它。
我正在尝试在MyApplication中设置DataType_T*** myData的值。我正在使用共享的 c++ 库(我表示库 A(来设置值。共享 c++ 库只是围绕 C API 的简单包装类。C API 作为共享库包含在库 A 中(我表示库 B(。
因此,MyApplication 在 A 中调用 GetData(myData(,在 B 中调用 GetData(myData(。
我的应用程序具有以下代码:
void OnButtonPress(){
const DataType*** myData;
GetData(myData);
DataTypeVal1 val1 = (*myData)[0]->val1; // just grabbing some info.
}
GetData(myData(:工作并正确设置myData。
我:键入一些新代码
void OnButtonPress(){
const DataType*** myData;
GetData(myData);
const void* strData = (*myData)[0]->strData; // just grabbing some info now that we have the pointer.
//Add lots more new code that does this over and over for each member of myData
String^ str = gcnew String(static_cast<const char*>(strData));
}
GetData(myData(:引发写访问冲突。
我:"。 . . . . . "什么。">
异常会因为某种 dll 卸载而被抛出吗?
当我键入新代码时,链接过程是否有可能更改?
我以前没有遇到过这样的问题,所以我真的不知道如何调试它。
有建议吗?
谢谢。
解决。 我发现了我不确定的行为。
我想你想要这样的东西:
const DataType** myData;
GetData(&myData);
const void* strData = myData[0]->strData;
因为在原始代码中,你只是按值传递一个指针;一个未初始化的指针,然后访问相同的未初始化值。
编辑:修复了第三行
相关文章:
- 在调试模式下引发C++ "deque iterator not dereferencable"异常
- 为什么调试器引发"read access violation. this was nullptr"异常?
- 添加新行时工作代码引发异常.调试技巧?
- SIGABRT 和线程相关的异常,但在调试期间工作正常
- Android ARM C++异常调试
- Visual Studio图形调试器引发读取访问冲突异常
- 在类声明中初始化 const 成员变量时在调试模式下出现异常
- 调试"在抛出 ..) 实例后终止调用",当异常 _should_ 被捕获时
- basic_string::替换的超出范围异常,而在范围内,正如调试相同参数的输出所证明的那样
- 调试器在异常C++时未挂起调试对象
- 捕获块调试语句在引发异常后未执行
- 调试器在 nullptr 检查期间引发 nullptr 异常
- QT创建者和MSVC-忽略调试时特定的异常类型
- Qt:如何在QByteArray中调试错误的分配异常
- C 调试中断异常
- 调试难以找到的异常
- 在Visual Studio 2010 c ++中调试时出现奇怪的异常
- 在Visual Studio C 调试模式中捕获异常的最佳方法仅在从IDE运行时才会发生
- 如何调试C++非托管代码中的较低级别文件访问异常/崩溃
- 调试异常,源信息丢失