On 09/06/2020 11:18, Michael Kerrisk (man-pages) wrote:
Hello Jonny,
On 5/30/20 12:39 PM, Jonny Grant wrote:
Hello mtk
I've noticed "%e-%s.core" often gives something other than the
filename and the name is truncated to 16 bytes:-
ThreadPoolServi-5.core
Chrome_InProcUt-5.core
This was set:
sysctl -w kernel.core_pattern="%e-%s.core"
In multithreaded applications it looks like %e is giving something
other than the filename, perhaps a thread entry-point symbol name.>
https://www.man7.org/linux/man-pages/man5/core.5.html
%e executable filename (without path prefix)
Could this be updated to:
%e executable filename or thread name truncated to 16 bytes
I changed it to this:
%e The process or thread's comm value, which typically is the
same as the executable filename (without path prefix, and
truncated to a maximum of 15 characters), but may have
been modified to be something different; see the discus‐
sion of /proc/[pid]/comm and /proc/[pid]/task/[tid]/comm
in proc(5).
Hi Michael
That looks good.
I saw $ top -H shows these similar 15 byte truncated names. It's a shame it is such a low limit.
19697 jonny 20 0 657252 46120 29096 S 2.6 0.3 0:18.84 gnome-terminal-
19431 jonny 20 0 4823508 114384 75668 S 1.6 0.7 0:00.08 ThreadPoolForeg
Is it better to say "15 bytes" because utf8 binary filenames or thread names would be less characters?
For example:
$ ./おはようございます
$ cat /proc/892/comm
おはようご
That is 15 bytes of utf8
E3 81 8A E3 81 AF E3 82 88 E3 81 86 E3 81 94 0A
Cheers, Jonny