Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Jul 2014 13:40:10 -0400
From:      suresh gumpula <gsuryacse7k@gmail.com>
To:        freebsd-hackers@freebsd.org
Subject:   Allocation/free history
Message-ID:  <CAJOqHmgO55L-D0_7zpnC0jFR%2BY1KWBzFwQirPfknhNeHzd0asg@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hi,
   Knowing the PC of an allocation is very usefull in debugging. Having the
PC hash table and storing the pc hash  either with an object itself( at the
end) or allocate an exra structure to hold the
hash index  help us find out who/where an object was allocated.   We
already have something like this in our own operating system and has been a
useful thing in debugging.
BSD allocator uses power of 2, so storing at the end of an object might be
wasting lot of memory with large objects.

It appears we don=E2=80=99t have something like this in current FBSD codeli=
ne and
would like to work on this ?  Any comments   please?


It would be something like below. 8 bytes at the end of each object has
fecepost which is usefull in finding overwrites and 2 hash indices to the
PC table to track allocation history.
(kgdb-amd64-7.4-87) x/40w 0xffffff153728b038
0xffffff153728b038:     0xf6970a05      0x06cb7e0c      0x305a134a
 0x831c18bb
0xc0000bed      0x134a2115

0xffffff153728b050:     0x85687ef8      0xffffffff      0x00000001
 0x83192201
                        0xc0000bed      0x1741143b

Thanks
Suresh



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJOqHmgO55L-D0_7zpnC0jFR%2BY1KWBzFwQirPfknhNeHzd0asg>