这个错误是什么意思?

时间:2011-08-16 19:51:46

标签: c++ root-framework

我正在ROOT平台上编写C ++代码。我收到以下错误:

*** Break *** segmentation violation
gdb not found, need it for stack trace
Root > Function main() busy flag cleared

我只是想知道这意味着什么(一般来说)。

2 个答案:

答案 0 :(得分:3)

通常,“分段违规”表示您访问了未分配给您的内存。通常一个迷路指针就是这个原因。

剩下的是一些关于缺少gdb的特定于Linux的消息(这将有助于理解该问题)。

答案 1 :(得分:3)

通常这意味着您已经写入(或可能已读取)您没有权限的内存。要么它只是无效的内存,要么(如果平台支持这样的概念),它就在你拥有的内存之外。

这种情况的一个常见原因是释放指针,然后再次使用它。

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.