[英]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.