On 29-03-23 04:41, John Reiser wrote:
     Could it be possible to add an option like --heap-up-fill --heap-down-fill (like for stack with malloc), that fills heap memory with a specified values (when entering a function and leave a function)?

tl;dr 2

See
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2723r0.html

The value zero is the worst possible value to use for such initialization,
from the viewpoint of quickly producing better software by discovering
and identifying bugs sooner.  Using the value zero tends to hide many bugs.

A much better value is 0x8181...81.  This value is non-zero, odd, negative
as a signed integer, a very unlikely floating-point value, very often
not a valid pointer value, and instantly recognizable in any dump of memory. It was used to great success as the "core constant" (the value of uninitialized
RAM) by the Michigan Terminal System for IBM 360/67 and successors,
from the early 1970s (50 years ago!) until the demise of MTS around 2000.

Hi John

The value 0 isn't all bad.

I quite often write code that uses enums that start with KIND_INVALID so then I can write asserts like assert(kind != KIND_INVALID);

0 is also the NULL pointer so if your code defends against NULL it will at least not crash. I agree with you about early detection of errors - in a previous job we had loads of "pass the parcel" code that just ignored errors and returned from functions without reporting an error. It was a nightmare to debug,

The value used with 'pattern' is 0xAA which isn't too bad either - fairly well known as being a test pattern.

A+
Paul


_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to