Christian Göttsche
0db398d4c3
Allow low and high value of CLAMP to be equal
...
Can for example occur in RichString_setAttrn(), when pausing and
resuming process tracing:
htop: RichString.c:56: void RichString_setAttrn(RichString *, int, int, int): Assertion `(0) < (this->chlen - 1)' failed.
./htop(backtrace+0x5b)[0x45d9eb]
./htop(CRT_handleSIGSEGV+0x189)[0x4ebab9]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x14140)[0x7fd249d35140]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x141)[0x7fd249b6ac41]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x123)[0x7fd249b54537]
/lib/x86_64-linux-gnu/libc.so.6(+0x2540f)[0x7fd249b5440f]
/lib/x86_64-linux-gnu/libc.so.6(+0x345c2)[0x7fd249b635c2]
./htop(RichString_setAttrn+0x234)[0x526de4]
./htop(RichString_setAttr+0x50)[0x5275c0]
./htop(Panel_draw+0x17b6)[0x514c26]
./htop(InfoScreen_run+0x305)[0x4fe7a5]
./htop[0x4d59d8]
./htop[0x5029cf]
./htop(ScreenManager_run+0x69f)[0x52a82f]
./htop(main+0x704)[0x4f8774]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea)[0x7fd249b55cca]
./htop(_start+0x2a)[0x4268ea]
2020-10-19 14:13:58 +02:00
Benny Baumann
0f5262917f
Make all required includes explicit
...
Information as seen by IWYU 0.12 + clang 9 on Linux
2020-10-18 20:09:05 +02:00
Benny Baumann
29346d0561
Provide basic configuration for IWYU
2020-10-18 20:07:12 +02:00
Daniel Lange
8c93f31809
Merge branch 'misaligned-struct-access' of BenBE/htop
...
Closes #263
2020-10-18 19:43:59 +02:00
Daniel Lange
8534dcb87c
Merge branch 'strace-leaks' of BenBE/htop
...
Closes #262
2020-10-18 19:43:24 +02:00
Benny Baumann
3e5bc034e5
Ensure full initialization of all fields
2020-10-18 17:35:32 +02:00
Benny Baumann
4dfedd3930
Fix various file descriptor leaks
2020-10-18 17:35:32 +02:00
Benny Baumann
81543253cf
Fix misaligned access inside taskstats structure
...
Reported by UB sanitizer (alongside several other messages):
linux/LinuxProcessList.c:782:25: runtime error: member access within misaligned address 0x614000000264 for type 'struct taskstats', which requires 8 byte alignment
0x614000000264: note: pointer points here
64 01 03 00 0a 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 4b c8 2e 00 00 00 00 00 3e 45 3c fd
^
The issue doesn't cause trouble on x86, but any architecture with stricter memory alignment requirements may inadvertedly break.
2020-10-18 17:20:34 +02:00
Benny Baumann
c138d14897
Release old memory on error
...
Avoids leaking memory upon realloc failure.
2020-10-17 20:54:14 +02:00
Benny Baumann
5e4b182616
Combine XAlloc.[ch] into XUtils.[ch]
2020-10-17 20:54:14 +02:00
Benny Baumann
872e542f4e
Rename StringUtils.[ch] to XUtils.[ch]
2020-10-16 20:30:21 +02:00
Benny Baumann
c6f04a9c5d
Move xAsprintf, xSnprintf and xStrdup to StringUtils.h
2020-10-16 20:29:45 +02:00
Christian Göttsche
7cd093ce95
Add NetworkIOMeter
2020-10-16 20:00:14 +02:00
Christian Göttsche
a802961286
Generalize Meter value colors for IO
2020-10-16 20:00:14 +02:00
Christian Göttsche
e9246abff8
Misc Vector updates
...
- Move swap() macro to source file and implement as function
- Implement Vector_get() and Vector_size() as inline functions
to make them type safe and avoid lhs usage
- Comment comparison statistics, they are only needed for performance
testing
2020-10-16 19:47:34 +02:00
Christian Göttsche
a63cfc8b7c
Refactor generating starttime string into Process class
2020-10-16 19:23:40 +02:00
Christian Göttsche
783be7711d
Do not use extra starttime process field on Linux
2020-10-16 19:23:40 +02:00
Christian Göttsche
d744dac7ee
Add SELinuxMeter
2020-10-16 19:20:07 +02:00
Christian Göttsche
af4f58d013
Misc conversion fixes
2020-10-16 19:16:53 +02:00
Christian Göttsche
1d00893110
Automatically detect if backtrace(3) needs -lexecinfo
2020-10-16 10:58:14 +02:00
Christian Göttsche
846fe8a71f
Mark Vector parameter const for non-modifying functions
2020-10-15 20:45:39 +02:00
Christian Göttsche
3c08fa3c63
Keep building on errors
...
Doing so allows for more than one error to be detected in builds
2020-10-15 20:45:39 +02:00
Christian Göttsche
bfa7d1fbe2
Mark search parameter in Vector_indexOf const
2020-10-15 20:45:39 +02:00
Benny Baumann
2f9381d867
Keep building on errors
...
Doing so allows for more than one error to be detected in builds
2020-10-15 20:31:56 +02:00
Christian Göttsche
898a690375
Do not hard-code line numbers in help screen building code
2020-10-14 14:34:40 +02:00
Christian Göttsche
1df7fa387a
Misc CRT cleanup
2020-10-14 14:28:02 +02:00
Christian Göttsche
59edb2e80c
Enclose macro argument in parentheses
2020-10-13 14:56:01 +02:00
Christian Göttsche
7af06659e2
Mark remaining classes const
2020-10-13 14:56:01 +02:00
Christian Göttsche
5cc20e7cb2
Settings: do not save initial cpu count
...
Not needed and confusing with ProcessList.cpuCount
2020-10-12 13:15:23 +02:00
Christian Göttsche
9f5b50edd7
CPUMeter: avoid crashes and leaks in case the CPU count changes
...
E.g. if the HT/SMT mode changes
Use separate data for sub-meters
Do not reuse drawData for maintainability
2020-10-12 13:15:23 +02:00
Christian Göttsche
0b9a001498
Meter: use explicit type for drawData
2020-10-12 13:15:23 +02:00
Christian Göttsche
25022c219d
Read CPU count every cycle to avoid issues when HT/SMT mode changes
2020-10-12 13:15:23 +02:00
Benny Baumann
601480003f
Centralise fault handling
...
This should be done as all platforms essentially did the same anyway and there was nothing platform specific.
2020-10-12 13:06:12 +02:00
Christian Göttsche
b47bc667a2
Add key to pause process list updates
2020-10-12 13:04:00 +02:00
Christian Göttsche
fc301b7447
Compress size of default FunctionBar
2020-10-12 13:04:00 +02:00
Benny Baumann
55eafd3b39
Add conf*/ and callgrind.out.* to list of ignored files
2020-10-11 14:21:59 +02:00
Christian Göttsche
f8b9ced93f
OpenFilesScreen update
...
- Remove local types and function from header file
- Reduce OpenFiles_Data to neccessary size
- Print file access mode (r/w/u)
- Fix memory leak on consecutive items without an intermediate file item:
==15257==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 120 byte(s) in 12 object(s) allocated from:
#0 0x48c864 in strdup (htop/htop+0x48c864)
#1 0x542f68 in xStrdup htop/XAlloc.c:71:17
#2 0x50e225 in OpenFilesScreen_getProcessData htop/OpenFilesScreen.c:112:25
#3 0x50cd17 in OpenFilesScreen_scan htop/OpenFilesScreen.c:141:35
#4 0x4fd3eb in InfoScreen_run htop/InfoScreen.c:81:35
#5 0x4d58bb in actionLsof htop/Action.c:361:4
#6 0x501766 in MainPanel_eventHandler htop/MainPanel.c:80:19
#7 0x5289fa in ScreenManager_run htop/ScreenManager.c:227:19
#8 0x4f748e in main htop/htop.c:300:4
#9 0x7ff73e0d8cc9 in __libc_start_main csu/../csu/libc-start.c:308:16
SUMMARY: AddressSanitizer: 120 byte(s) leaked in 12 allocation(s).
2020-10-10 11:26:43 +02:00
Christian Göttsche
79ad39c718
Mark Object pointer to _display function const
2020-10-10 11:25:19 +02:00
Fynn Wulf
e5fdb80c7d
Fix Hashtable_put to allow storing the same pointer
2020-10-09 12:23:16 +02:00
Christian Göttsche
f4439b1b60
Makefile sort correction
2020-10-09 10:40:54 +02:00
Christian Göttsche
41eea8a355
Mark process argument of Process_isThread const
2020-10-09 10:18:40 +02:00
Daniel Lange
7fa0f19ffd
Merge branch 'master' of https://github.com/ryenus/htop
...
Closes #223
2020-10-09 09:45:41 +02:00
ryenus
32a2caa692
use 'w' for command wrapping as 'M' is already used
...
since 'M' is already used for sort-by-memory, as with:
keys['M'] = actionSortByMemory;
reorder help info about shortcut keys
2020-10-09 09:03:32 +08:00
Benny Baumann
4a78f4bb92
Some more locations for ARRAYSIZE
2020-10-08 15:37:03 +02:00
Benny Baumann
2970cae543
Handle parsing envID & VPid from process status file
...
Fixes #55
Fixes #192
2020-10-07 13:14:39 +02:00
Christian Göttsche
ba282cfe19
Mark Object instances const
2020-10-07 13:01:53 +02:00
Christian Göttsche
08d85e6143
Mark Object classes and Object class fields const
2020-10-07 13:01:53 +02:00
Benny Baumann
164051354f
Replace copy loop by memmove in Vector_insert
...
This is basically the same change like in Vector_take,
just in the opposite direction.
2020-10-07 12:59:55 +02:00
Benny Baumann
1704c29b90
Use memmove for Vector_take
...
Doing a quick check with callgrind this gives
an average reduction from 1804 cycles/call
down to 491 cycles/call on my test system.
The average was taken over about 40k calls.
2020-10-07 12:59:55 +02:00
Daniel Lange
769df604b2
Set a -dev version to bug reports show a useful version and not the last release
2020-10-07 10:35:06 +02:00