C 中的 GDB 搞不定怎麼辦

時間 2021-05-30 13:10:25

1樓:不死鳥

valgrind

檢查非法讀寫試試。

有一次給結構體加了成員變數之後,詭異出core,後來才發現另外一位同事 malloc sizeof 寫錯了,本來沒有問題,加了成員變數結構變大了。

2樓:禽牙

這種記憶體問題可能性極大,gcc4.8.5之後就提供sanitizer支援,直接無腦加sanitizer編譯,跑起來等問題重現就行。

自從sanitizer之後,關於記憶體問題,小白與高手的界限就模糊了。

3樓:Belleve

我告訴你這種事情就應該用 WinDBG 的 TTT 去 Trace,然後下 data breakpoint 點 go back,100% 定位到問題源。

呃不過好像你是 Linux,那找個差不多的工具(我知道有但是忘記叫啥)抓

4樓:小時了了

訪問了已經被釋放的物件

把一種型別的指標錯誤的轉換成了其它型別

建議先從這兩方面排查。

以前有知友說過一句很有道理的話:BUG的詭異程度通常和愚蠢程度成正比。

所以要相信並沒有什麼量子力學的BUG,不穩定出現的,加了日誌或者開了偵錯程式就不出現的,諸如此類一般都是和多執行緒有關的,雖然麻煩但也不是解決不了的。

5樓:

從描述上看是個必現的問題那還有救無非是不能靠gdb偷懶了唄看看被改成啥了找找靈感開O3優化我覺得不太像正經專案幹的事所以我傾向於先查查越界 ((

6樓:船長

碰到過。偵錯程式不是萬能的。我這裡也有乙個開偵錯程式就正確的例子,雖然不是嚴格意義上的race condition,但有異曲同工之妙。

總是搖擺不定,怎麼辦?

單一頻率 為什麼要回頭看別人是怎麼做的,一百個人眼中有一百個哈姆雷特,你要做的不是看別人如何活的好,而是你自己怎麼做才能讓自己活的好。搖擺不定是太在乎別人的看法,因為活在別人眼中,所以才會迷失自己。就堅定自己的立場,他人的立場可能讓你覺得是正確的,但只不過是他的部分觀點讓你覺得好像是有些道理,但你真...

道心不堅,搖擺不定,怎麼辦

正一淨明徐靜言 試一試做三件好事,做三件壞事 勿做傷天害理之事 你在審視一下自己的道心。我心既道心,存在既合理。調整心態。不以物喜不以己悲 愛哭的小鬼 如果你因為這些而想到一些不好的東西,不是因為其他,而是因為你內心不堅定,沒有更好的理解道的本心,我們能做的就把握好自己,把握不了別人,讓自己順從自己...

覺得男朋友飄忽不定,怎麼辦?

林林深深月光光 不值得,分手吧。這個男人的喜歡太廉價了,新鮮感過了就不想了。真,這個男的其實不喜歡你,沒有站在你的角度去想過。乙個男人把你變成了聖母明明介意不喜歡,卻還是選擇原諒。這個男人的喜歡真不值得,不值得,分手吧。 傲嬌的小餅乾 很明顯這個男人沒把你當回事 還有你的生活是不是太閒了?他一舉一動...