我正在ROOT平台上编写 C++ 代码。我收到以下错误:
*** Break *** segmentation violation
gdb not found, need it for stack trace
Root > Function main() busy flag cleared
我只想知道这意味着什么(一般而言)。
我正在ROOT平台上编写 C++ 代码。我收到以下错误:
*** Break *** segmentation violation
gdb not found, need it for stack trace
Root > Function main() busy flag cleared
我只想知道这意味着什么(一般而言)。
通常,“分段违规”意味着您访问了一块未分配给您的内存。通常一个流浪指针是造成这种情况的原因。
剩下的是一些关于缺少 gdb 的特定于 Linux 的消息(这将有助于理解问题)。
通常这意味着您已写入(或读取)您没有权限的内存。要么它只是无效的内存,要么(如果平台支持这样的概念)它在你拥有的内存之外。
造成这种情况的一个常见原因是释放一个指针,然后再次使用它。
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.