Age | Commit message (Collapse) | Author |
|
|
|
(no /proc/$PID/cmdline so setting was skipped and previous value retained),
which led to memcpy() with an overlapping source/dest range (annoying asan).
Fix: move temp variable and assignment outside the if() statement so we assign
zero if we can''t read the file.
|
|
POSIX says nothing, but traditional ps lets you say "ps 123" in addition
to "ps -p 123". (You can mix and match too: "ps -p 123,124 666 667" works
fine.)
Bug: 31778761
|
|
Android uses NAME rather than CMD by default, but that's not what we
want with -T. Noticed because it broke systrace's reporting of thread
names (see https://developer.android.com/studio/profile/systrace.html).
Bug: 31741954
|
|
This is enough for everything on Android and everything except Java
on my desktop. Even desktop Chrome fits!
|
|
|
|
It should come as no surprise to those who followed the development of
this that it's not well known which of the various names is actually the
thread name. Adding "thread" to the ps --help output seems like a good
idea.
I'm also assuming that "stat2" was meant to read "stat[2]", since that's
how it mostly appeared on the list while discussing this. Still fits in
80 columns.
|
|
|
|
constraints while still trying to get sane behavior. Discard the old CMD,
move COMM to CMD, move the old NAME to COMM, and move TNAME to NAME.
Posix assumes argv[] is the only source of process name data, but Linux has
three sources (/proc/$PID/cmdline, /proc/$PID/exe, /proc/$PID/stat field 2)
and android uses multiple sources simultaneously to identify its processes
and threads.
Toybox ps also assumes that the field names displayed in the headers
can be fed to -o to get that output, which is an assumption posix's
ps spec clearly does not have. Before we were erring on the side of posix,
now we're erring on the side of sanity.
CMD now shows stat[2], all the time. The posix -f behavior change is now
just an ARGS=CMD alias in the -f default command line, which -o overrides.
(Before -f changed the behavior of -o CMD, which is closer to what
posix says but is _insane_ and we've stopped doing it.)
COMM now shows /proc/$PID/exe minus the path. (I'm aware posix says argv[0]
here, but it says argv everywhere.)
NAME is now argv[0] of $PID.
TNAME went away.
Both $COMM and $NAME show the data for $PID, which is a thread's parent
process when $TID != $PID.
|
|
field (that's the ptb/tb switching in get_ps) so it's never blank, so
this doesn't trigger. (Conditionally initializing it would save runtime
memory, but at the expense of more complex code.)
|
|
"NAME" is no longer doing what we want; "TNAME" is what "NAME" used to be,
except that "TNAME" implies -T. This patch switches us over to "TNAME",
disables the implicit -T.
Change-Id: I5553703d3939b24eaf39976162d2f75a591e1ce8
|
|
(Still fixing the fallout from that "Don't truncate number fields" logic rewrite.)
|
|
argv[0]. If that's blank, show [stat2]."
That way threads show their parents, parents show themselves, and
kernel threads show the [stat2] name.
|
|
The man page says they also return 2 for syntax errors and 3 for "fatal
error: out of memory etc", but I don't know how to implement that and
don't need it (or have any reason to believe anyone needs it).
Bug: 29092208
|
|
use generated constant for stat field parsing loop.
|
|
when trimmed for screen width), make ARGS path trimming logic work with
spaces in path.
|
|
and the collate logic wasn't updated. (Oops.)
|
|
I don't know that anyone cares, but these failures made me think I'd
broken something while testing the -SIGNAL patch.
The -s parsing wasn't taking into account that -s 0 is a special case,
and the -o test was assuming that pkill can tell the difference between
two processes started at roughly the same time. Hopefully there's
higher-resolution data available that can avoid the need for yet another
sleep in the tests.
|
|
This fixes the existing test. Internal Android bug 28877702.
I've left -l as-is, even though the desktop doesn't support that.
|
|
let them overflow and try to reclaim extra space from later short fields.
|
|
calculations instead of doing strlen() on strings again to store lengths.
|
|
|
|
|
|
|
|
|
|
Also enable the same behavior we have with ps, where adding a thread-related
field implies that you're interested in threads.
Also clean up the help text slightly --- we're still not including the
TOP_COMMON help, but at least when we do, we'll have each option covered with
no duplicates.
|
|
The use of TT.time to determine whether to use \r or \n is a little odd,
but let's stick with that for now. Correct the spelling of millitime and
add a test.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Add ps -o BIT,TID,TCNT, and make -T display "PID,TID" for default output types
(adding TCNT to -f)
|
|
The ps.c change allows us to start. The interestingtimes.c change allows
us to clean up properly afterwards if you ^C out (which you usually do).
Tested with both ssh and "adb shell" (the latter being where I noticed
the problem).
|
|
Batch mode should never output terminal escape sequences, should ignore
the keyboard, and should include a gap between datasets.
|
|
major/minor/makedev, but glibc has vowed to break existing programs
(https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html)
and replace it with _another_ non-standard header (not in posix or lsb),
so let's just add functions to lib/ that do the transform ourselves.
|
|
|
|
|
|
|
|
down move way down past end of list.
|
|
|
|
Still need to do the cpu(s) line in top.
|
|
(Still truncates at the right edge to fit terminal width, but last commit
made -w the default when no terminal width detected.)
|
|
when we haven't got a terminal width. Replace top CMDLINE with ARGS.
More ps infrastructure genericization: parse reverse unconditionally.
Break out get_headers() with global references moved to caller.
change quick_ko() to default_ko() (dlist_terminate is now caller's job).
|
|
the start of -h HEADER (mostly parses text, but doesn't display %ESCAPES yet).
Added UP, DOWN, and R keys.
Made only iotop STAYROOT (not top), added comment explaining why.
Bumped iotop's historical -O and -K to capital letters.
Added quick_ko() to add argument list from string instead of arg_list.
|
|
Make fallback sort do string sort after numeric tie, retain absolute uptime
even though relative is needed for %CPU (hence utime2).
|
|
|
|
While I'm there, pack the ps help text, break out TOP_COMMON (todo: update
config2help to collate that properly), add -o CPU showing which processor
this pid is running on, implement -o C (it's %cpu without the fractional
part), add -o %MEM, fix header padding.
|
|
Still need to do -n and -o.
|