vamsi krishna wrote:
Hello All,
Is there a way I can find the base of the heap without reading the
/proc/maps file?
I linux currently gcc have __attribute(constructor)__ which will make
a function call before libc is initialized and even before main is
called, in such routine I use sbrk(0) to find the base of the brk.
Is there a way I can do this on solaris?
Looking forward to hear from you.
From the end(3C) man page:
DESCRIPTION
These names refer neither to routines nor to locations with
interesting contents; only their addresses are meaningful.
_etext The address of _etext is the first location
after the last read-only loadable segment.
_edata The address of _edata is the first location
after the last read-write loadable segement.
_end If the address of _edata is greater than the
address of _etext, the address of _end is
same as the address of _edata.
If the address of _etext is greater than the
address of _edata, the address of _end is
set to the page boundary after the address
pointed to by _etext.
USAGE
When execution begins, the program break (the first location
beyond the data) coincides with _end, but the program break
can be reset by the brk(2), malloc(3C), and the standard
input/output library (see stdio(3C)), functions by the pro-
file (-p) option of cc(1B), and so on. Thus, the current
value of the program break should be determined by sbrk
((char *)0).
References to end, etext, and edata, without a preceding
underscore will be aliased to the associated symbol that
begins with the underscore.
- Bart
--
Bart Smaalders Solaris Kernel Performance
[EMAIL PROTECTED] http://blogs.sun.com/barts
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code