問題タブ [dmalloc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
41 参照

c - Double-Free エクササイズが期待どおりに機能しない

Robert C. Seacord の「Effective C」という本を読んでいます。この本では、dmalloc を使用してテストして原因をデバッグできるように、ポインターを意図的に二重に解放する演習があります。ただし、期待どおりに失敗することはありません。

*errmsgここでは、2 回解放する必要があることは明らかです。最初にusage関数が渡されたときに関数によって解放され、次に in の直後に解放されmainます。引数なしで実行したときにこれが失敗しないのはなぜですか? GCC 9.3.0 で Linux (POP!_OS 20.04) を使用しています。

編集:より多くのコンテキストについては、本は次のような出力が表示されることを示唆しています:

free にさらに通話を追加しても、何も起こりません。使用部分は取得できますが、コア ダンプは取得できません。