3

如何在教科书中找到的现有 C 程序上使用 Visual Studio 调试器?我想一一调试这些小示例,但没有为每个示例创建完整项目的开销。

示例:假设我从 Visual Studio 命令提示符(“cl.exe helloworld.c”)编译“helloworld.c”。这给了我 helloworld.obj 和 helloworld.exe。我想知道是否有办法在“helloworld.exe”上使用 VS 调试器。到目前为止,我只在成熟的项目中使用过调试器;我不知道如何在没有 Visual Studio 项目开销的情况下调试小型“独立”测试程序。(我希望这不是一个愚蠢的问题,因为 VS 调试器可能仅适用于整个项目。)

谢谢你的任何想法。

4

6 回答 6

3

为什么不创建一个项目来测试示例代码?您可以为所有示例创建一个 .c 文件。这看起来像

void sampleA()
{
 //hello world
}

void sampleB()
{
 //hello everybody else
}

void main(int argc, char** argv)
{
//  sampleA(); 
  sampleB();
}
于 2011-03-26T17:06:06.227 回答
1

当我不得不使用VS时,我所做的就是重用我很久以前创建的plain.c项目。

只需在那里粘贴新代码即可。如果要保留代码,请将其放入另一个文件中。

于 2011-03-26T17:07:33.463 回答
1

这并非不可能,但您必须了解更多关于如何从命令行准确构建程序以获得最佳调试体验的信息。有很多选项可以实时节省时间,并大大提高您发现错误的几率。

现在有点离题了,学习 C 而不是花时间学习一个有太多选择的无聊工具。经过一点练习后,创建一个新项目需要 5 秒钟。使用 Win32 控制台应用程序项目模板。

如果要编译为 C 而不是 C++,则必须更改一个小设置。右击项目,属性,C/C++,高级,编译为=编译为C代码。

于 2011-03-26T17:09:39.867 回答
1

调试器是 Visual Studio 的一部分,因此无论如何您都必须启动它。但是,要让调试器与您的源代码一起正常工作,您还需要生成一个 PDB 文件(请参见此处)。您可以通过在 cl.exe中包含/Zi或作为参数来获得此信息(请参见此处)。/ZI

于 2011-03-26T17:15:19.207 回答
0

如果您决定不使用项目,那么您可以这样做。随着代码文件数量的增加,它变得更加困难。

首先,要进行任何有意义的源代码级调试,您需要生成调试符号。将“/Zi”开关添加到您的cl.exe命令行:

cl.exe /Zi helloworld.c

这将生成helloworld.exehelloworld.objhelloworld.pdb(这些是调试符号)。

接下来,您将打开 Visual Studio 2010。使用 File -> Open -> File... 并选择helloworld.exe. 它将为您的 EXE 文件生成一个包含一个项目的包装解决方案。

在解决方案资源管理器中,右键单击 EXE 文件并选择 Debug -> Step Into new instance。

它应该会弹出一个源窗口并显示程序的第一行。现在,调试!

于 2011-03-26T17:10:50.163 回答
0

发布这个问题所花费的“开销”几乎没有更多的努力!

只需从“空项目”模板开始,然后通过右键单击项目浏览器源文件夹来添加要调试的单个源文件。只需几秒钟。

于 2011-03-26T20:43:17.583 回答