Visual 2015 C++ 程序未运行,调试符号问题?

Posted

技术标签:

【中文标题】Visual 2015 C++ 程序未运行,调试符号问题?【英文标题】:Visual 2015 C++ Program Not Running, Deubugging Symbols issue? 【发布时间】:2016-01-20 02:17:56 【问题描述】:

刚开始用 C++ 编程并安装了 Visual 2015。我一直在尝试运行一个简单的“Hello World”程序,但得到以下结果:

'ConsoleApplication1.exe' (Win32): Loaded 'C:\Users\(user)\Documents\Visual Studio 2015\Projects\ConsoleApplication1\Debug\ConsoleApplication1.exe'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Symbols loaded.

'ConsoleApplication1.exe' (Win32): Loaded
'C:\Windows\SysWOW64\kernel32.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded
'C:\Windows\SysWOW64\KernelBase.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded
'C:\Windows\SysWOW64\vcruntime140d.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded
'C:\Windows\SysWOW64\msvcp140d.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded
'C:\Windows\SysWOW64\ucrtbased.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded
'C:\Windows\SysWOW64\advapi32.dll'. Symbols loaded.

'ConsoleApplication1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded
'C:\Windows\SysWOW64\cryptbase.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded
'C:\Windows\SysWOW64\bcryptprimitives.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded
'C:\Windows\SysWOW64\kernel.appcore.dll'. Symbols loaded.

The thread 0x2714 has exited with code 0 (0x0).
The thread 0x748 has exited with code 0 (0x0).
The thread 0xc24 has exited with code 0 (0x0).
The program '[3496] ConsoleApplication1.exe' has exited with code 0 (0x0).

我不知道这是干什么用的。控制台显示了我的输出,然后关闭并显示整个消息。我已经搜索了互联网,但我没有得到可靠的答案。

【问题讨论】:

这是典型的行为。当您在调试中运行时,在代码中放置一个断点,它应该停止。或者,在代码末尾添加system("pause");,只是为了查看输出。 这意味着您的程序已启动,加载了一些 DLL(这是正常的,自动发生),然后退出。 或者,在没有调试器的情况下运行程序(Ctrl-F5 而不是 F5),Visual Studio 将为您执行“按任意键继续”操作。 Issue with Symbols - can't step into .NET code的可能重复 【参考方案1】:

您的程序似乎运行良好:

线程 0x2714 以代码 0 (0x0) 退出。 线程 0x748 已以代码 0 (0x0) 退出。 线程 0xc24 已以 代码 0 (0x0)。 程序“[3496] ConsoleApplication1.exe”有 以代码 0 (0x0) 退出。

第一部分是关于启动程序并加载所有必要的 dll。最后一部分表示线程和您的程序以代码 0x0 退出,这意味着没有错误。

您可能需要在某处放置一个断点 F9 来暂停程序,或者在控制台应用程序中放置一个getch();(需要:#include <conio.h>)。

当程序以调试模式(使用 F5)启动时,控制台会显示此输出,要在没有调试输出的情况下启动它,请使用 Ctrl-F5(菜单调试 /无需调试即可开始)。

【讨论】:

以上是关于Visual 2015 C++ 程序未运行,调试符号问题?的主要内容,如果未能解决你的问题,请参考以下文章

在 MS Visual C++ 中调试未处理异常的正确方法

Visual Studio c++ 仅在调试模式下 LNK 1104 错误

Visual Studio 未运行程序,因为它需要 v120 工具

Visual C++:运行时内存调试器刷新

(Visual Studio) 如何判断我的 c++ 程序的哪些部分运行了,哪些没有运行?

如何在运行时确定您的 C++ 应用程序何时附加了 Visual Studio 调试器?