草庐IT

DEBUGGING

全部标签

c++ - 使用 gdb 在 Eclipse 中调试简单 C++ 时出现 "No source available for main()"错误

我在OSX上的Eclipse(Helios的最新RC,使用最新的CDT更新)在OSX上调试C++程序时遇到问题。程序非常简单(基本上是NeHe的OpenGL教程的第2课),由一个cpp文件组成,使用OpenGL和Cocoa框架,并与libSDL.a和libSDLmain.a链接。项目的结构非常简单:源文件位于项目的子目录src/中,可执行文件构建到项目的根目录中。问题是,每当我尝试添加断点并对其进行调试时,断点似乎被完美命中,但没有显示任何源-相反,我只是在代码窗口中收到“没有可用于main()的源”错误。编译器标志的优化设置为无,编译器和链接器都设置了调试符号标志(-g)。Eclip

c++ - 在 Linux 中调试 C++ 程序

我写了一个像这样的简单C++程序:#includeusingnamespacestd;intmain(){cout现在我想调试它。那么它的命令是什么,以便我控制每一行? 最佳答案 您可以使用gdb为此:$gdbhello这将启动gdb并提示您下一步做什么。next命令执行一行源码并在下一行停止。我找到了一个基本的GDBtutorial这可能会有所帮助。 关于c++-在Linux中调试C++程序,我们在StackOverflow上找到一个类似的问题: https

c++ - 在 Linux 中调试 C++ 程序

我写了一个像这样的简单C++程序:#includeusingnamespacestd;intmain(){cout现在我想调试它。那么它的命令是什么,以便我控制每一行? 最佳答案 您可以使用gdb为此:$gdbhello这将启动gdb并提示您下一步做什么。next命令执行一行源码并在下一行停止。我找到了一个基本的GDBtutorial这可能会有所帮助。 关于c++-在Linux中调试C++程序,我们在StackOverflow上找到一个类似的问题: https

.net - Win32 控制台应用程序与 CLR 控制台应用程序

我正在处理一个我不打算使用.NET库或工具开发或部署的C++项目,这意味着我可以使用VisualStudioWin32控制台应用程序创建它。但是,我听说在VisualStudio下使用CLR应用程序时的调试能力要强大得多。所以我有几个问题:即使您不使用任何.NET库或其他资源,CLR应用程序与Win32应用程序是否确实会为您的开发过程增加功能?如果是这样,我是否仍然能够将项目开发/编译为CLR项目以利用这些优势,即使我正在使用STL等开发纯C++项目而不是利用任何.NET功能?或者这样的项目是否需要根本性的差异,以使恢复变得不简单,这意味着我应该坚持使用Win32控制台应用程序?

.net - Win32 控制台应用程序与 CLR 控制台应用程序

我正在处理一个我不打算使用.NET库或工具开发或部署的C++项目,这意味着我可以使用VisualStudioWin32控制台应用程序创建它。但是,我听说在VisualStudio下使用CLR应用程序时的调试能力要强大得多。所以我有几个问题:即使您不使用任何.NET库或其他资源,CLR应用程序与Win32应用程序是否确实会为您的开发过程增加功能?如果是这样,我是否仍然能够将项目开发/编译为CLR项目以利用这些优势,即使我正在使用STL等开发纯C++项目而不是利用任何.NET功能?或者这样的项目是否需要根本性的差异,以使恢复变得不简单,这意味着我应该坚持使用Win32控制台应用程序?

c++ - 在 Qt Creator 中进入 Qt 源代码(在 Ubuntu Linux 中)

我在Ubuntu中使用QtCreator。它是从存储库安装的,但就目前而言,调试时无法进入Qt源代码。我怎样才能启用它? 最佳答案 由于QtCreator使用gdb,所以需要配置gdb。首先要做的是安装Qt调试符号:apt-getinstalllibqt4-dbg或者,对于Qt5:apt-getinstallqtbase5-dbg#Fortheqtbasepackage这将为Qt库安装调试符号。旧版本的Ubuntu有一个愚蠢的错误,需要额外的技巧来纠正这些符号文件,但在当前版本中它可以正常工作。这将使gdb进入Qt方法,但没有源代码

c++ - 在 Qt Creator 中进入 Qt 源代码(在 Ubuntu Linux 中)

我在Ubuntu中使用QtCreator。它是从存储库安装的,但就目前而言,调试时无法进入Qt源代码。我怎样才能启用它? 最佳答案 由于QtCreator使用gdb,所以需要配置gdb。首先要做的是安装Qt调试符号:apt-getinstalllibqt4-dbg或者,对于Qt5:apt-getinstallqtbase5-dbg#Fortheqtbasepackage这将为Qt库安装调试符号。旧版本的Ubuntu有一个愚蠢的错误,需要额外的技巧来纠正这些符号文件,但在当前版本中它可以正常工作。这将使gdb进入Qt方法,但没有源代码

c++ - 如何在 C++ 中调试大量模板代码?

这个问题在这里已经有了答案:Debuggingtemplateinstantiations(4个回答)关闭1年前。我发现在使用C++模板元编程时很难弄清楚我的代码有什么问题。可能是我不太擅长理解错误消息,但据我所知,我不能求助于放入打印语句或断点来弄清楚发生了什么。除了手动挑选代码并希望它能找到我之外,在试图找出为什么无法编译的原因时,您能提供哪些提示或建议? 最佳答案 对于STL,至少有一些工具可以输出更人性化的错误消息。见http://www.bdsoft.com/tools/stlfilt.html对于非STL模板,您只需了解

c++ - 如何在 C++ 中调试大量模板代码?

这个问题在这里已经有了答案:Debuggingtemplateinstantiations(4个回答)关闭1年前。我发现在使用C++模板元编程时很难弄清楚我的代码有什么问题。可能是我不太擅长理解错误消息,但据我所知,我不能求助于放入打印语句或断点来弄清楚发生了什么。除了手动挑选代码并希望它能找到我之外,在试图找出为什么无法编译的原因时,您能提供哪些提示或建议? 最佳答案 对于STL,至少有一些工具可以输出更人性化的错误消息。见http://www.bdsoft.com/tools/stlfilt.html对于非STL模板,您只需了解

c++ - gprof 和可执行文件的参数

使用gprof时:$gprofoptions[executable-file[profile-data-files...]][>outfile]如果您可以选择传递给可执行文件,例如:gprofa.out--varfred=32然后gprof假定我将一个无效选项传递给它,而不是传递给正在分析的程序(a.out)。有什么办法可以解决这个问题? 最佳答案 您不使用gprof运行可执行文件,因此您只需指定它以便gprof可以加载符号。您首先像往常一样单独运行可执行文件,然后它会发出分析数据。这些数据与可执行文件一起由gprof稍后加载。这一