在VS2015中进行时间调试 - crtexe.c

时间:2016-06-02 20:36:41

标签: windows visual-studio visual-studio-debugging

我正在尝试使用VS&Justs-in time debugger来调试Microsoft应用程序。在某个时刻,我被提示找到crtexe.c文件。我似乎无法找到该文件。知道如何解决这个问题(即我应该知道这个文件在哪里)?看来如果我找不到这个文件,我就无法设置断点(VS说"你需要找到crtexe.c来查看当前调用堆栈帧的来源")。另外,仅仅是出于我自己的好奇心,crtexe.c文件的目的是什么?

(这是我第一次使用Just in-time调试器,这就是为什么我对crtexe.c等一点点无能为力。)

1 个答案:

答案 0 :(得分:0)

crtexe.c的标题说:

/***
*crtexe.c - Initialization for console EXE using CRT DLL
*
*       Copyright (c) Microsoft Corporation. All rights reserved.
*
*Purpose:
*       This is the actual startup routine for apps linking to the CRT DLL.
*       It calls the user's main routine [w]main() or [w]WinMain after
*       performing C Run-Time Library initialization.

听起来您正在调试在旧版Visual Studio中构建的应用程序。 VC ++ 2013及更早版本附带的C Runtime源代码中提供了crtexe.c。 (可能只支付付费版本?)例如,使用Visual Studio 2013,该文件位于C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\crt\src\crtexe.c。我在Visual Studio 2015中没有看到它,因此我怀疑它可能已经作为Universal CRT工作的一部分重命名和/或删除。

因此,要查看crtexe.c的源代码并调试该代码,您需要安装构建应用程序的VC ++版本。

话虽如此,你不太可能需要这些源代码。要求您提供源位置的唯一原因是为了方便您查看来自调用堆栈的代码。通常,您只需点击取消,您仍然可以看到自己的代码。