enviroment : mips architecture linux 2.6.x, with uclibc 0.9.27 (the
newest version)
recently,i met a problem: a thread which uses 90% of cpu resourc is
always running 。 I used command "cat /proc/pid/stat" to show run
state of the thread. with the gnu tool fo objdump, I found that
the thread's instruction was in "malloc" function in most of the
cases,rarely in " erand48_r " function.
when it was in " " erand48_r " funtion ,it would quickly return to
"malloc" function . uclibc is configured with MALLOC_STANDARD.
"erand48_r" isn't called explicitly in my thread code. "erand48_r" is
just wrapped to some funtion which is only provide some
interface to application and isn't called by any
function in the uclibc.If thread loops in my main code , i can
catch that some instructions (gained from objdum) will in my text
section ,other than always
in Uclibc dynamic library.So it seems that thread is looping in the
"malloc" routine. Anybody can tell me the mechanism of malloc.
Will the malloc routine have the possibility of looping inside the
"malloc" routine? Or What happened to my thread?
_________________________________________________________________
Hotmail: Free, trusted and rich email service.
https://signup.live.com/signup.aspx?id=60969
_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc