Что означает эта ошибка? - PullRequest
       12

Что означает эта ошибка?

0 голосов
/ 16 августа 2011

Я пишу код C ++ на платформе ROOT .Я получаю следующую ошибку:

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

Я просто хочу знать, что это значит (в общем).

Ответы [ 2 ]

3 голосов
/ 16 августа 2011

Обычно это означает, что вы записали (или, возможно, прочитали) память, на которую у вас нет разрешения.Либо это просто недействительная память, либо (если платформа поддерживает такую ​​концепцию), она находится за пределами вашей памяти.

Распространенной причиной этого является освобождение указателя, но затем его повторное использование.

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.
3 голосов
/ 16 августа 2011

Как правило, «нарушение сегментации» означает, что вы получили доступ к части памяти, которая не была выделена вам. Обычно причиной этого является случайный указатель.

Остальное является специфическим для Linux сообщением, касающимся отсутствующего GDB (что было бы полезно для понимания проблемы).

...