繁体   English   中英

在 linux 上调试巨大的 C++ 项目

[英]Debug huge C++ project on linux

我使用 C++ 在 Mac 上开发了一个项目。 它完美地工作。 但是,当我尝试从 Linux 服务器启动它时,出现错误的分配错误:

terminate called after throwing an instance of 'std::bad_alloc' 
what():    std::bad_alloc 
Aborted

我不知道如何调试整个项目,因为我完全不知道问题来自哪里。 为什么它可以在我的 Mac 上运行而不是在 Linux 上运行? 所有与此相关的文章和问题只要求单个文件程序,而不是 40 多个文件项目。

有没有办法获取导致错误分配的文件或行?

使用-g编译器选项构建您的程序以获得有意义的堆栈跟踪。

然后在调试器中运行程序,例如gdb

gdb --args [executable] [arguments...]

当 gdb 加载完毕后,输入命令run ,你的程序就会运行。 一旦异常被抛出并且未被您的程序捕获, gdb就会向您显示一个堆栈跟踪,显示您从何处抛出异常。

std::bad_alloc意味着您的程序无法分配更多内存,可能是因为操作系统内存不足或您达到了系统强加的显式内存限制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM