問題タブ [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.
c - Double-Free エクササイズが期待どおりに機能しない
Robert C. Seacord の「Effective C」という本を読んでいます。この本では、dmalloc を使用してテストして原因をデバッグできるように、ポインターを意図的に二重に解放する演習があります。ただし、期待どおりに失敗することはありません。
*errmsg
ここでは、2 回解放する必要があることは明らかです。最初にusage
関数が渡されたときに関数によって解放され、次に in の直後に解放されmain
ます。引数なしで実行したときにこれが失敗しないのはなぜですか? GCC 9.3.0 で Linux (POP!_OS 20.04) を使用しています。
編集:より多くのコンテキストについては、本は次のような出力が表示されることを示唆しています:
free にさらに通話を追加しても、何も起こりません。使用部分は取得できますが、コア ダンプは取得できません。