Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Daniel Ng <daniel.ng1234 <at> gmail.com>
Subject: top -h doesn't display Thread Names
Newsgroups: gmane.linux.busybox
Date: Friday 17th June 2011 13:06:01 UTC (over 6 years ago)
Hi,

I've noticed a bug with busybox's 'top' command-

When the 'display threads' option is enabled with the '-h' parameter, the 
individual thread names should be displayed in the 'COMMAND' column, in
place 
of arg0. 
This is how the standard version of top behaves.

The current busybox code results in only arg0 being displayed. 
Hence, for multiple threads spawned under the one process, only the
process' 
arg0 entry will show in the 'COMMAND' column for each thread. 
The multiple threads would be displayed, but you can't easily tell which 
thread is which because their displayed COMMAND is the same arg0.

ie.-

Say you have an executable called 'myProgram' that spawns 4 threads.

The current incorrect behaviour of 'top':

COMMAND
myProgram
myProgram
myProgram
myProgram

vs. what it should be:

COMMAND
myThread1
myThread2
myThread3
myThread4

The root cause is that read_cmdline() is used to display the COMMAND
column, 
regardless of whether the '-h' option is set.

Unfortunately, read_cmdline() is called by display_process_list(). This 
function doesn't know if the '-h' option was set.

The only solution I can think of is to change the parameters of 
display_process_list() so that it knows if '-h' was set.

However, this feels like a bit of a hack, just to deal with this special
case.

Can anyone suggest a better soultion?

Cheers,
Daniel
 
CD: 5ms