mirror of
https://github.com/xzeldon/htop.git
synced 2025-07-12 12:14:36 +03:00
Check processes for using deleted shared libraries
Shared libraries can be replaced by an upgrade, highlight processes using deleted shared libraries. Link with highlightDeletedExe setting, enabled by default. Currently only checked on Linux.
This commit is contained in:

committed by
cgzones

parent
94d37989b4
commit
8154125d4b
11
Process.c
11
Process.c
@ -472,7 +472,8 @@ void Process_makeCommandStr(Process *this) {
|
||||
|
||||
const int baseAttr = Process_isThread(this) ? CRT_colors[PROCESS_THREAD_BASENAME] : CRT_colors[PROCESS_BASENAME];
|
||||
const int commAttr = Process_isThread(this) ? CRT_colors[PROCESS_THREAD_COMM] : CRT_colors[PROCESS_COMM];
|
||||
const int delAttr = CRT_colors[FAILED_READ];
|
||||
const int delExeAttr = CRT_colors[FAILED_READ];
|
||||
const int delLibAttr = CRT_colors[PROCESS_TAG];
|
||||
|
||||
/* Establish some shortcuts to data we need */
|
||||
const char *cmdline = this->cmdline;
|
||||
@ -529,14 +530,18 @@ void Process_makeCommandStr(Process *this) {
|
||||
WRITE_HIGHLIGHT(exeBasenameOffset, exeBasenameLen, commAttr, CMDLINE_HIGHLIGHT_FLAG_COMM);
|
||||
WRITE_HIGHLIGHT(exeBasenameOffset, exeBasenameLen, baseAttr, CMDLINE_HIGHLIGHT_FLAG_BASENAME);
|
||||
if (this->procExeDeleted)
|
||||
WRITE_HIGHLIGHT(exeBasenameOffset, exeBasenameLen, delAttr, CMDLINE_HIGHLIGHT_FLAG_DELETED);
|
||||
WRITE_HIGHLIGHT(exeBasenameOffset, exeBasenameLen, delExeAttr, CMDLINE_HIGHLIGHT_FLAG_DELETED);
|
||||
else if (this->usesDeletedLib)
|
||||
WRITE_HIGHLIGHT(exeBasenameOffset, exeBasenameLen, delLibAttr, CMDLINE_HIGHLIGHT_FLAG_DELETED);
|
||||
str = stpcpy(str, procExe);
|
||||
} else {
|
||||
if (haveCommInExe)
|
||||
WRITE_HIGHLIGHT(0, exeBasenameLen, commAttr, CMDLINE_HIGHLIGHT_FLAG_COMM);
|
||||
WRITE_HIGHLIGHT(0, exeBasenameLen, baseAttr, CMDLINE_HIGHLIGHT_FLAG_BASENAME);
|
||||
if (this->procExeDeleted)
|
||||
WRITE_HIGHLIGHT(0, exeBasenameLen, delAttr, CMDLINE_HIGHLIGHT_FLAG_DELETED);
|
||||
WRITE_HIGHLIGHT(0, exeBasenameLen, delExeAttr, CMDLINE_HIGHLIGHT_FLAG_DELETED);
|
||||
else if (this->usesDeletedLib)
|
||||
WRITE_HIGHLIGHT(0, exeBasenameLen, delLibAttr, CMDLINE_HIGHLIGHT_FLAG_DELETED);
|
||||
str = stpcpy(str, procExe + exeBasenameOffset);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user