从另一个Visual Studio项目调试Visual Studio C程序

时间:2013-10-09 21:45:51

标签: c visual-studio debugging visual-studio-2012 visual-studio-debugging

我有一个包含多个项目的Visual Studio 2012解决方案,一些在C中,一些在Fortran中(使用Intel Composer XE 2013)。我经常使用iso_c_binding实用程序从Fortran代码调用C代码,但我注意到我无法有效地调试C代码。在调试Fortran代码时,我可以很好地查看变量的内容,但如果我进入C代码,突然间他们就失去了理智。大多数变量只是声称未定义;传递给函数的任何内容都将包含不正确的值(但它仍然可以区分指针和对象/ POD)。

我仍然可以单步执行代码;它似乎主要遵循预期的执行顺序,但有时它确实跳了一下,我熟悉在Linux上使用gdb调试编译器优化的代码。

我有一个单独的解决方案,也有C和Fortran项目。两者都从第一个解决方案调用同一个C项目,在这两种情况下,我都可以再次成功调试,直到我从第一个解决方案进入C项目,此时我遇到了同样的问题。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

这是用于调试优化的代码的标准bat信号。您需要重新排列构建设置,以便Fortran代码链接到C代码的非优化Debug构建。

首先,你的问题中没有关于出错的问题。首先检查哪个库链接到您的Fortran程序,并确保您可以在Debug和Release版本中看到为C项目生成的不同库。您需要链接Debug构建创建的那个。