我正在寫一個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