From fd18cb8fa5117b98939db553c2f61dd83b84d7d8 Mon Sep 17 00:00:00 2001 From: zinc Date: Thu, 15 Oct 2026 02:37:51 +0330 Subject: rt: memreport marks a leaked value whose drop never ran with (drop); spec 4.11, readme, memdebug_report_drop.zc --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'README.md') diff --git a/README.md b/README.md index 4ebbe0e..a90017d 100644 --- a/README.md +++ b/README.md @@ -272,7 +272,7 @@ zy: double free from line 12 zy: bad heap pointer ``` -the line is the `new` that made the block. a double free prints and returns; it does not smash the block. `rt.memreport()` prints one line per recorded object that is still live, `leak: line 12 3 words`, and returns how many. the word count is the block's payload, which is a power-of-two chunk minus the 5 word header, not the size you asked for. the table holds 64 sites. freed blocks stay in it until the storage is reused, which is how a double free still knows the line. nothing here changes programs that never say `memdebug`. +the line is the `new` that made the block. a double free prints and returns; it does not smash the block. `rt.memreport()` prints one line per recorded object that is still live, `leak: line 12 3 words` (with ` (drop)` after it when the object's drop never ran), and returns how many. the word count is the block's payload, which is a power-of-two chunk minus the 5 word header, not the size you asked for. the table holds 64 sites. freed blocks stay in it until the storage is reused, which is how a double free still knows the line. nothing here changes programs that never say `memdebug`. ### line tables and backtraces -- cgit v1.2.3