【问题标题】:Just in Time Debugging in VS2015 - crtexe.cVS2015 中的即时调试 - crtexe.c
【发布时间】:2016-06-02 20:36:40
【问题描述】:
我正在尝试使用 VS 的即时调试器来调试 Microsoft 应用程序。在某个时刻,系统会提示我找到 crtexe.c 文件。我似乎无法找到该文件。知道如何解决这个问题(即我应该知道这个文件在哪里)吗?看来,如果我找不到这个文件,我就无法设置断点(VS 说“你需要找到 crtexe.c 来查看当前调用堆栈框架的源代码”)。另外,只是出于我自己的好奇,crtexe.c 文件的用途是什么?
(这是我第一次使用 Just in-time 调试器,这就是为什么我对 crtexe.c 等一无所知)
【问题讨论】:
标签:
windows
visual-studio
visual-studio-debugging
【解决方案1】:
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 中构建的应用程序。 crtexe.c 在 VC++ 2013 及更早版本包含的 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++ 版本。
话虽如此,您不太可能需要该源代码。要求您提供源位置的唯一原因是为了方便您从调用堆栈中查看该代码。通常,您只需单击“取消”,您仍然可以看到自己的代码。