我正在写一个C++代码在ROOT平台上。我收到以下错误:这个错误是什么意思?
*** Break *** segmentation violation
gdb not found, need it for stack trace
Root > Function main() busy flag cleared
我只是想知道这意味着什么(一般)。
我正在写一个C++代码在ROOT平台上。我收到以下错误:这个错误是什么意思?
*** Break *** segmentation violation
gdb not found, need it for stack trace
Root > Function main() busy flag cleared
我只是想知道这意味着什么(一般)。
通常,这意味着您已经写入(或可能读取)您没有权限的内存。要么它只是无效的内存,要么(如果平台支持这样的概念),它不在你拥有的内存中。
这是一个常见的原因是释放一个指针,但然后再次使用它。
Foo * pFoo = new Foo();
pFoo->Bar(); // should be fine.
delete pFoo; // pFoo now points to memory that may or may not still be an actual Foo.
pFoo->Bar(); // undefined behavior.
通常,“分段违规”意味着您访问了一段未分配给您的内存。通常一个流浪的指针就是这个原因。
剩下的是一些关于缺少gdb的Linux特有的消息(这将有助于理解问题)。
分段违规 - 通常是某种内存访问错误(指针运行错乱)。没有找到gdb - 这是gnu调试器。它似乎没有安装或不在系统路径中。 – arunkumar