小编KPe*_*xEA的帖子

我的程序崩溃时如何自动生成堆栈跟踪

我正在使用GCC编译器在Linux上工作.当我的C++程序崩溃时,我希望它能自动生成一个堆栈跟踪.

我的程序由许多不同的用户运行,它也可以在Linux,Windows和Macintosh上运行(所有版本都使用编译gcc).

我希望我的程序能够在崩溃时生成堆栈跟踪,并且在用户下次运行它时,它会询问他们是否可以将堆栈跟踪发送给我,以便我可以追踪问题.我可以处理向我发送信息,但我不知道如何生成跟踪字符串.有任何想法吗?

c++ crash gcc assert stack-trace

561
推荐指数
20
解决办法
33万
查看次数

使用mkdir时如何防止makefile中的"目录已存在错误"

我需要在我的makefile中生成一个目录,我想不要一遍又一遍地得到"目录已存在错误",即使我可以轻易忽略它.

我主要使用mingw/msys但是想要能够在其他shell /系统中运行的东西.

我试过这个,但它没有用,有什么想法?

ifeq (,$(findstring $(OBJDIR),$(wildcard $(OBJDIR) )))
-mkdir $(OBJDIR)
endif
Run Code Online (Sandbox Code Playgroud)

directory makefile exists

107
推荐指数
9
解决办法
11万
查看次数

C/C++编译器警告:您是否清理了所有代码以将其删除或保留?

我参与了很多项目,其他人已经给了别人更新的代码.我经常编译它并获得大约1,000多个编译器警告.当我看到编译器警告时他们让我觉得很脏,所以我的第一个任务是清理代码并将它们全部删除.通常我发现大约十几个问题,比如未初始化的变量.

我不明白为什么人们把它们留在里面并且没有完全干净的编译而没有任何警告.我错过了什么吗?是否有正当理由离开他们?分享任何恐怖故事?

c c++ compiler-construction warnings

63
推荐指数
9
解决办法
1万
查看次数

使用TortoiseSVN或命令行SVN在Subversion存储库中设置SVN"execute"位

我有一个托管在code.google.com上的开源应用.它是跨平台的(Linux/Windows/Mac).我最初使用TortoiseSVN从WinXP机器上传了代码,似乎没有一个用于linux构建的"配置"批处理文件都设置了"执行"位.

为需要它们的文件设置这些最简单的方法是什么?我想,使用TortoiseSVN会更容易,但如果不能使用,那么我也可以在我的linux机器上使用命令行SVN.

svn version-control tortoisesvn

50
推荐指数
3
解决办法
4万
查看次数

你能用c或c ++分配一个非常大的单块内存(> 4GB)吗?

这些天我有很大的ram,我想知道,有可能分配一块大于4GB的单块内存吗?或者我需要分配一堆较小的块并处理它们之间的切换?

为什么???我正在处理一些openstreetmap xml数据,这些文件非常庞大.我目前正在流式传输,因为我无法将它们全部加载到一个块中,但我对malloc或new的上限感到好奇.

c c++ memory malloc

42
推荐指数
7
解决办法
2万
查看次数

如何在ac/c ++程序中检测可能/潜在的堆栈溢出问题?

有没有一种标准的方法来查看您的应用程序有多少堆栈空间以及运行期间堆栈使用的最高水印?

另外在可怕的情况下实际溢出会发生什么?

它会崩溃,触发异常还是发出信号?是否有标准或在所有系统和编译器上有所不同?

我正在寻找专门针对Windows,Linux和Macintosh的.

c c++ memory stack overflow

41
推荐指数
5
解决办法
3万
查看次数

在C++中,使用异常和try/catch而不仅仅返回错误代码有什么好处?

我已经编写了很长时间的C和C++,到目前为止我从未使用过异常和try/catch.使用它有什么好处,而不仅仅是让函数返回错误代码?

c++ exception-handling try-catch

24
推荐指数
7
解决办法
1万
查看次数

为不同的输出目录生成gcc依赖项

我正在使用gcc生成依赖文件,但我的构建规则将输出放入子目录.有没有办法告诉gcc将我的子目录前缀放在它为我生成的依赖文件中?

gcc $(INCLUDES) -E -MM $(CFLAGS) $(SRC) >>$(DEP)
Run Code Online (Sandbox Code Playgroud)

c++ dependencies gcc makefile

21
推荐指数
3
解决办法
2万
查看次数

是否有用于检查针对不同操作系统的开源应用程序的服务器场?

我有一个开源应用程序,我在Windows,Linux和Macintosh上工作(它是用C++编写的,用gcc构建).我只在几种不同版本的Linux上测试它,所以我不知道它是否编译并运行在所有不同的Linux版本上.有没有一个地方我可以上传我的代码,并在其他Linux系统和Solaris,FreeBSD等操作系统之类的不同系统上进行测试?

如果我可以直接连接到我的svn存储库并获取最新的代码,然后通过电子邮件发回给我生成的任何编译错误以及操作系统是否存在问题,那将是多么美妙的事情.

我很高兴知道它编译,因为它是一个基于GUI的应用程序,所以我不希望它实际上运行和测试.

c++ operating-system build

19
推荐指数
1
解决办法
2696
查看次数

如何忽略外部库头中的gcc编译器迂腐错误?

我最近在make gcc编译选项中添加了-pedantic和-pedantic-errors来帮助清理我的跨平台代码.一切都很好,直到它在外部包含的头文件中发现错误.有没有办法关闭外部头文件IE中的错误检查:

继续检查包含的文件如下:

#include "myheader.h"
Run Code Online (Sandbox Code Playgroud)

停止检查包含这样的包含文件:

#include <externalheader.h>
Run Code Online (Sandbox Code Playgroud)

以下是我得到的错误:

g++ -Wall -Wextra -Wno-long-long -Wno-unused-parameter -pedantic --pedantic-errors
-O3 -D_FILE_OFFSET_BITS=64 -DMINGW -I"freetype/include" -I"jpeg" -I"lpng128" -I"zlib"
-I"mysql/include" -I"ffmpeg/libswscale" -I"ffmpeg/libavformat" -I"ffmpeg/libavcodec"
-I"ffmpeg/libavutil" -o omingwd/kguimovie.o -c kguimovie.cpp

In file included from ffmpeg/libavutil/avutil.h:41,
             from ffmpeg/libavcodec/avcodec.h:30,
             from kguimovie.cpp:44:
ffmpeg/libavutil/mathematics.h:32: error: comma at end of enumerator list
In file included from ffmpeg/libavcodec/avcodec.h:30,
             from kguimovie.cpp:44:
ffmpeg/libavutil/avutil.h:110: error: comma at end of enumerator list
In file included from kguimovie.cpp:44:
ffmpeg/libavcodec/avcodec.h:277: error: comma at end of enumerator list
ffmpeg/libavcodec/avcodec.h:303: error: comma …
Run Code Online (Sandbox Code Playgroud)

compiler-construction gcc compiler-errors

16
推荐指数
2
解决办法
8073
查看次数