Benny Baumann
321960bd96
Update delay accounting to use NAN on error
2020-09-24 18:06:36 +02:00
Benny Baumann
3c65d78d77
Update CPU freq display to use NAN on error
2020-09-24 18:06:36 +02:00
Benny Baumann
ebcf924643
Use threshold for display of guest/steal/irq meters
2020-09-24 18:06:36 +02:00
Benny Baumann
d0d3deb73c
Properly query sysconf settting and use NAN if unavailable
...
This also fixes an issue with time returned negative if sysconf(_SC_CLK_TCK) returned an error.
2020-09-24 18:06:36 +02:00
Benny Baumann
29ec115143
Update IO rate display to use NAN on error
2020-09-24 18:06:36 +02:00
Benny Baumann
47e2cefe02
Update battery API to use NAN on error
2020-09-24 18:06:36 +02:00
Christian Hesse
f805093589
align cpu id to right
2020-09-24 17:53:57 +02:00
Christian Göttsche
d2b3a7a375
Drop dead process fields
...
They are nowhere used.
2020-09-24 17:48:38 +02:00
Michael F. Schönitzer
c1b5201444
Consistent wording/formatting of field descriptions
2020-09-24 17:48:17 +02:00
Michael F. Schönitzer
83257744cc
Document M_PSS and M_PSSWP in man page
2020-09-24 17:48:17 +02:00
Michael F. Schönitzer
7844e06eb0
Document field M_SWAP in man page
2020-09-24 17:48:17 +02:00
Christian Göttsche
2565dd3c58
Drop dead code after break
2020-09-24 17:47:17 +02:00
Christian Göttsche
6b11738744
Avoid arithmetic on booleans
2020-09-23 19:09:11 +02:00
Christian Göttsche
f9966b5be3
Use checked allocation wrappers
2020-09-23 17:50:21 +02:00
Benny Baumann
e0e5997c53
Fix minor regression in number highlighting
...
Fixes #163
2020-09-21 14:10:07 +02:00
Christian Göttsche
eb260af6bf
Fix memory leak on cgroup read failure
2020-09-21 13:55:29 +02:00
senjan
2c933f210b
htop shows no used memory in Solaris zone
2020-09-21 13:54:45 +02:00
senjan
543286256e
htop crashes on Solaris 11.4 due to missing ZFS ARC kstats
2020-09-21 13:54:45 +02:00
Christian Göttsche
5ea13e7ea9
Add format attribute
2020-09-18 12:28:40 +02:00
Christian Göttsche
efb971f9df
Fail travis CI on compiler warnings
2020-09-18 12:28:40 +02:00
Christian Göttsche
475f729a36
Resolve unused variable on FreeBSD
2020-09-18 12:28:40 +02:00
Christian Göttsche
e719a85994
Mark noreturn functions
2020-09-18 12:28:40 +02:00
Christian Göttsche
b85a31415e
Avoid checking of undefined macros
...
These feature macros are either define or not defined at all at the
configure step.
2020-09-18 12:28:40 +02:00
Christian Göttsche
c3952e7c20
Use strict function prototypes
...
int foo(); declares a function taking any number of arguments.
2020-09-18 12:28:40 +02:00
Christian Göttsche
7107d1db0b
Refactor __attribute__ usage
...
Use internal macros for compatibility with non GNUC compilers.
2020-09-18 12:28:40 +02:00
Christian Göttsche
f4602f7b4e
Add some default compiler warnings
...
Compatible with gcc and clang.
2020-09-18 12:28:40 +02:00
Christian Göttsche
dd6500c7c7
Sort option in help message
2020-09-18 12:27:45 +02:00
Christian Göttsche
f6b0efded5
Convert short version option to capital V
...
v is generally used for enabling verbose mode
2020-09-18 12:27:45 +02:00
Christian Göttsche
f3b4e248a3
Drop unused variable
2020-09-18 12:22:18 +02:00
Michael F. Schönitzer
1061bd719a
Change option '-m' to '-M' for consistency of cli
...
`-m` was added as short option for `--no-mouse`, this is inconsistence
to the rest of the cli since otherwise the short options to disable a
feature are capital letters. Therefore this commit renames the option to
`-M`.
This commit also documents the option in the man page.
2020-09-18 12:04:21 +02:00
Benny Baumann
40441dca8e
Enhance highlighting of semi-large and large numbers
2020-09-17 22:08:13 +02:00
Christian Göttsche
3142077c76
Add script to run htop under valgrind
...
Includes suppressions for ncurses leaks.
2020-09-17 22:06:36 +02:00
Christian Göttsche
c7568bc054
Fix memory leak in actionSetAffinity()
...
Call correct delete method for AffinityPanel
2020-09-17 22:04:11 +02:00
Christian Göttsche
71c068ad28
Free movingBar memory on exit
2020-09-17 22:04:11 +02:00
Christian Göttsche
8a849bc85a
Call character checking function with unsigned char
...
See https://wiki.sei.cmu.edu/confluence/display/c/STR37-C.+Arguments+to+character-handling+functions+must+be+representable+as+an+unsigned+char
2020-09-17 22:03:24 +02:00
Christian Göttsche
1f5bd5c4c8
Avoid modifying optarg
...
It might be working, but lets rather not modify getopt's global variable
`optarg`.
Also there is no need to call `getenv("USER")`, just use `geteuid()`.
2020-09-17 21:55:26 +02:00
Christian Göttsche
5d4061732f
Allow third party sigsegv handler
...
For example from sanitizers.
2020-09-17 21:54:21 +02:00
Christian Göttsche
00665e2a2b
Avoid unsigned integer overflow
...
unsigned overflow is well defined, but creates noise when using
sanitizers. unsigned overflow can be a symptom of logic issues of
counter, so its reasonable to use.
linux/LinuxProcessList.c:64:50: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior linux/LinuxProcessList.c:64:50 in
linux/LinuxProcessList.c:64:11: runtime error: implicit conversion from type 'unsigned int' of value 4294967295 (32-bit, unsigned) to type 'int' changed the value to -1 (32-bit, signed)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior linux/LinuxProcessList.c:64:11 in
linux/LinuxProcessList.c:64:78: runtime error: unsigned integer overflow: 4 - 136 cannot be represented in type 'unsigned int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior linux/LinuxProcessList.c:64:78 in
2020-09-17 21:53:31 +02:00
Christian Göttsche
98ee833932
Add Linux process column for context switches
...
Displays the incremental sum of voluntary_ctxt_switches and nonvoluntary_ctxt_switches.
2020-09-17 21:53:15 +02:00
Christian Göttsche
ffc65b3827
Reorder check to avoid crash on invalid process field setting
...
If using a setting from a different development version with an
unsupported process field, first dereferencing Process_fields[id] yields
to a crash:
=================================================================
==19530==ERROR: AddressSanitizer: global-buffer-overflow on address 0x000000612800 at pc 0x000000521d1a bp 0x7ffec47a5ff0 sp 0x7ffec47a5fe8
READ of size 8 at 0x000000612800 thread T0
#0 0x521d19 in readFields .htop/Settings.c:107:40
#1 0x51d117 in Settings_read .htop/Settings.c:141:10
#2 0x51c0c4 in Settings_new .htop/Settings.c:382:12
#3 0x4eafe2 in main .htop/htop.c:220:25
#4 0x7fa450570cc9 in __libc_start_main csu/../csu/libc-start.c:308:16
#5 0x427a59 in _start (.htop/htop+0x427a59)
0x000000612800 is located 0 bytes to the right of global variable 'Process_fields' defined in 'linux/LinuxProcess.c:24:18' (0x6118a0) of size 3936
SUMMARY: AddressSanitizer: global-buffer-overflow .htop/Settings.c:107:40 in readFields
Shadow bytes around the buggy address:
0x0000800ba4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0000800ba4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0000800ba4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0000800ba4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0000800ba4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0000800ba500:[f9]f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba510: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba520: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba530: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba540: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba550: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==19530==ABORTING
2020-09-17 21:46:22 +02:00
Christian Göttsche
84d39f95c6
autotools: enable warnings and cleanup
...
- enable warnings in autogen script
- drop unused m4/ directory usage
- drop AC_TYPE_SIGNAL:
C99 guarantees the signal return type to be void
- drop AC_CHECK_FILE of procdir:
most of the time compilation is done on a different system than htop is run
and there is a runtime check in place
- improve linux_affinity corss compile logic:
use fourth argument instead of pre-test
2020-09-17 21:45:11 +02:00
Christian Göttsche
37921382f4
Use PROCDIR throughout instead of /proc on Linux
2020-09-17 21:44:27 +02:00
Christian Göttsche
1efddaf1e5
Check for fdopen failure in OpenFilesScreen_getProcessData
2020-09-17 21:43:53 +02:00
Christian Göttsche
b096fdbfc0
Avoid potential buffer overflow in LinuxProcessList_readStatFile
...
Pass size of allocated command buffer and limit write.
2020-09-17 21:43:53 +02:00
Benny Baumann
95012d6259
Avoid hardcoding of buffer size
2020-09-17 21:43:05 +02:00
Benny Baumann
443a943798
Properly close pipe handles when work is done
2020-09-17 21:43:05 +02:00
Benny Baumann
6921000481
Barely ever seen any 1000 digit PIDs …
2020-09-17 21:43:05 +02:00
Daniel Lange
6646030116
Update creation date to 2004 (thanks rubyFeedback)
...
Closes #140 (doc update)
2020-09-17 09:47:28 +02:00
Daniel Lange
3a1c698578
Update README with correct tarball locations, ncurses hints and support / bug reporting pointers.
...
Closes #63 (Release URL tarballs)
Closes #61 , Closes #82 (Support requests on ncurses)
Closes #89 (ncurses docs)
Closes #28 (htop-dev vs. -legacy)
2020-09-16 18:10:29 +02:00
Zev Weiss
2899ed4cb0
Number CPUs from zero by default.
...
Numbering from one is idiosyncratic and inconsistent with basically
everything else in the world; it doesn't make much sense as default
behavior.
All naming is updated to reflect that numbering from one is a
non-default, opt-in option. The old label of the flag saved in htoprc
("cpu_count_from_zero") is still supported for backwards compatibility
with existing configs, however.
2020-09-15 03:25:08 -05:00