使用VS2013的奇怪(c++)调试问题
Strange (c++) debug issues using VS2013
我继承了一个要处理的项目,最初的构建是在linux上开发的。我不知道这是否重要,但我想我会分享它。
为了在windows机器上调试该项目,我首先在win7上使用CMakeGUI创建一个Visual Studio解决方案文件,以使用Visual Studio 2013打开该项目,然后设置启动项目并构建我感兴趣的项目。到目前为止,一切都很好。现在是令人困惑的部分。
在加载时,假设程序读取一个文件,并将其称为in.dat
,并在const char * inputFileName
中声明该变量,然后将该变量传递给一个类,该类试图打开该文件以获取数据。
fstream fs;
fs.open(inputFileName.c_str(), fstream::in);
if(!fs.is_open())
{
std::cout << "Cannot open input file!" << std::endl;
exit(0);
}
这是我被难住的地方。。。由于某种原因,当文件被放在调试文件夹中时,无法打开,即当我尝试调试应用程序时fs.is_open() returns false
,但如果我直接cd到VS之外的项目调试文件夹中,并运行它按预期运行的可执行文件,即fs.is_open() now returns true
。
调试器的工作目录默认为项目的根目录,二进制文件位于\debug子目录中,这实际上导致输入文件的路径错误。
将调试器的工作目录设置为\debug。以下是更多信息:https://msdn.microsoft.com/en-us/library/kcw4dzyf(v=vs.120).aspx
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 在linux上调试巨大的C++项目
- 为什么使用__LINE_的代码在发布模式下在MSVC下编译,而不是在调试模式下
- 如何针对特定情况调试和修复此双自由内存损坏问题
- 正在VS调试器中监视映射条目
- 使用调试/崩溃报告将应用程序部署到客户端
- VC++本机单元测试,找不到调试符号
- 如何在C++生成器中禁用"使用调试.dcus"
- 使用vscode调试时,GDB意外退出
- 即使使用调试编译标志,表达式也是"optimized out"
- 调试 CUDA MMU 故障
- 小字符串优化(调试与发布模式)
- 调试和自由执行中的信号处理
- 调试编译的服务器在数据库打开时崩溃
- Visual Studio 调试优化如何工作?
- 如何配置Visual Studio Code以使用cygwin,cmake和gcc进行调试
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 如何在大型c++项目的可视化代码中设置调试
- Qt 调试显示行号
- 如何将可变参数模板转换为多个单个模板?(C++竞争编程调试模板)