Skip to content

Add 'press D to attach debugger' feature#27

Closed
mic-e wants to merge 4 commits intohtop-dev:masterfrom
mic-e:press-g-to-attach-gdb
Closed

Add 'press D to attach debugger' feature#27
mic-e wants to merge 4 commits intohtop-dev:masterfrom
mic-e:press-g-to-attach-gdb

Conversation

@mic-e
Copy link
Copy Markdown

@mic-e mic-e commented Aug 29, 2020

No description provided.

@rien333
Copy link
Copy Markdown

rien333 commented Aug 29, 2020

Note that g conflicts with a binding that is commonly used in builds that support a vim mode (see #25 — if this ever becomes implemented, at least).

@mic-e
Copy link
Copy Markdown
Author

mic-e commented Aug 29, 2020

Unfortunate. Which keys are free in vim mode?
Would features like 'attach strace' work the same way in vim mode, i.e. by pressing 's'?

@rien333
Copy link
Copy Markdown

rien333 commented Aug 29, 2020

Unfortunate. Which keys are free in vim mode?

Good question. Most key combos with modifiers other than shift are available. Currently, htop includes only a small number of vim keys (see 12805f6 + maybe / for searching).

At this point, g is completely free in htop 3.0, even in vim mode. However, htop 2.X with vim patches applied often did include g and G bindings, so that might change. Perhaphs you could use d (as in, "d" for debugging) instead of g for launching gdb in vim mode? (or just use d accross the board)?

@mic-e
Copy link
Copy Markdown
Author

mic-e commented Aug 30, 2020

Sounds good :)

I have switched the key to d and also made the debugger configurable through htoprc so if you want to use lldb you now can

Comment thread Action.c Outdated
Comment thread Action.c Outdated
Comment thread Settings.c
CRT_restorePrivileges();
}
this->colorScheme = 0;
this->debuggerTool = xStrdup("gdb");
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe htop should check the ownership of the configuration file it's about to read, so that no un-privileged user can by accident modify a privileged configuration file and inject commands.

(Another unrelated personal thought is to set the value to NULL, i.e. disable the feature by default, so if someone fat-fingers the key d nothing happens.)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should I add an ownership check in general and refuse to read the file if (g+w || o+w) is set, or just for this specific setting?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re your unrelated personal thought: I don't think that's necessary; if people don't have gdb installed, nothing will happen when they fat-finger d. If they do have gdb installed, well, it's likely that they know what they're doing, and if they pressed the key by accident they know how to leave gdb.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re again: I've changed it to D which should be less likely to be hit by accident.

Copy link
Copy Markdown
Author

@mic-e mic-e Sep 19, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding your request to check the ownership:

I think that this could be accomplished using the following code to Settings_read():

   bool trusted = true;
   struct stat64 file_stat;
   fstat64(fileno(fd), &file_stat);
   if (file_stat.st_uid != getuid32()) {
      printf("warning: htop settings file is not owned by uid %d\n", getuid32());
      trusted = false;
   } else if (file_stat.st_gid != getgid32()) {
      printf("warning: htop settings file is not owned by gid %d\n", getgid32());
      trusted = false;
   } else if (file_stat.st_mode & 0002) {
      printf("warning: htop settings file is writable by others\n");
      trusted = false;
   }

And then ignoring certain values if trusted == false.

However, having implemented this and thought about it for a bit, I now strongly oppose the idea because:

  • It can be easily circumvented by an attacker who has write permissions to any folder in the hierarchy
  • It prevents the config from working when I launch htop with sudo
  • If somebody manages to manipulate the htop config in my home folder, they could just as well inject stuff into my .bashrc. Other tools like bash don't check their config files for permissions either.
  • ssh used to check its config files for permission bits but this was removed because it caused too much pain and actually decreased security by e.g. preventing users from putting their secret keys onto flash drives
  • I think ACLs would be ignored

(unless I misunderstood your request?)

Comment thread Action.c Outdated
@cgzones cgzones added needs-discussion 🤔 Changes need to be discussed and require consent needs-rebase Pull request needs to be rebased and conflicts to be resolved RFE labels Sep 12, 2020
@mic-e mic-e changed the title Add 'press g to attach gdb' feature Add 'press d to attach debugger' feature Sep 18, 2020
@BenBE
Copy link
Copy Markdown
Member

BenBE commented Sep 18, 2020

In VIM mode d would be a natural choice to kill ('drop') a process, as k is blocked by the navigation keys.

What about b for 'bug search' for gdb?

@mic-e
Copy link
Copy Markdown
Author

mic-e commented Sep 18, 2020

b seems a bit far-fetched... maybe shift+D, which would also defuse the fat-fingering issue?

@rien333
Copy link
Copy Markdown

rien333 commented Sep 18, 2020

In VIM mode d would be a natural choice to kill ('drop') a process, as k is blocked by the navigation keys.

I haven't seen any vim patches that use 'd' for this I think. Rather, most (including this project prior to the moment vim-mode got temporarily dropped) seem to use K (i.e. shift+k). Though shift+d may work nicely as well.

The best solution would of course be if htop would allow users to bind various action-primitives to keys in some configuration file (like other good TUI/GUI unixy programs like cmus, mpv, zathura, qutebrowser, emacs), instead of being force-fed some control scheme.

@mic-e mic-e force-pushed the press-g-to-attach-gdb branch from 87a8b26 to 071483b Compare September 18, 2020 21:13
@mic-e
Copy link
Copy Markdown
Author

mic-e commented Sep 18, 2020

re-based to current master

@mic-e mic-e force-pushed the press-g-to-attach-gdb branch from 1df44b4 to b6e0150 Compare September 19, 2020 01:08
@mic-e mic-e changed the title Add 'press d to attach debugger' feature Add 'press D to attach debugger' feature Sep 19, 2020
@mic-e mic-e force-pushed the press-g-to-attach-gdb branch 2 times, most recently from 2fd5214 to 0cc7814 Compare September 19, 2020 01:51
make debugger tool configurable via htoprc
We also ensure that the debugger gets its own foreground process group,
so that all its signals are handled properly.
@mic-e mic-e force-pushed the press-g-to-attach-gdb branch from 0cc7814 to 5c7d25b Compare September 19, 2020 01:56
@cgzones cgzones removed the needs-rebase Pull request needs to be rebased and conflicts to be resolved label Sep 21, 2020
@fasterit fasterit removed the RFE label Nov 18, 2020
@fasterit
Copy link
Copy Markdown
Member

We discussed this proposal in the core team yesterday. We do not want to add more single purpose tools with hotkeys. Needing to attach a debugger is such a seldom need over the whole user base that it does not make sense to add it specifically.

That said, what we would like to see implemented is the functionality to start a $XDG_CONFIG_HOME/htop/run_script on a key press (possibly r):
run_script would be called with "PID" "USER" "COMMAND" on the currently highlighted line.
Bonus points for providing a sequence of "PID" "USER" "COMMAND" on stdin if multiple processes are tagged (=marked).
Bonus points for making the script location configurable in /etc/htoprc so that system-wide defaults could be set (having a $XDG_CONFIG_HOME/htop/run_script present would override the global setting still). This would (automatically) also allow to override the script location for a user in their local htoprc (same config reader).

If run_script outputs on stdout and/or stderr this would go into the InfoScreen pager. Otherwise htop would just return to normal operations once the exec* returns. See OpenFilesScreen.c or TraceScreen.cfor inspiration.

Attaching a gdb could be a htop-supplied example of how to use such a script.

Would you be interested in implementing such a function?

@BenBE BenBE added the enhancement Extension or improvement to existing feature label Nov 20, 2020
@TheJJ
Copy link
Copy Markdown

TheJJ commented Nov 23, 2020

I've whished for such a feature for a really long time, since launching gdb is just the next step to strace and lsof.
But I understand your concern regarding single-purpose keys.

How about we make all keys configurable, so I can define my gdb launcher? That means not a single possible run_script, rather, configurable keys for everything and arbitrary commands and key combinations, ...
The defaults obviously remain like people are used to.

And if you do insist on a single key, please allow the tool to be interactive, i.e. not always wrap it into a pager. that way one could at least do a sub-menu in this script where the actual action is then selected (e.g. gdb, lldb, r2, ...).

@BenBE
Copy link
Copy Markdown
Member

BenBE commented Nov 23, 2020

The concern in the team was less with having this script part limited to just one™ action only, but that implementing just starting one program, hard-coded into htop would open up a rabbit hole we don't want to start going down.

What might work just fine should be to allow for an arbitrary number of commands to be configured, all with their run_script obeying the format specified by htop ("an API"). Upon pressing the "run tool" key you could then get a menu to select the one™ you want to start before passes on control to that script and displays it's output.

Passing thru all keys might be somewhat tricky, but could be managed by some "interactive command mode" where htop effectively relinquishes control of the terminal until that executed command terminates (e.g. for gdb). For non-interactive commands this might continue to behave just like strace is currently implemented.

Regarding keybindings: That's a kinda complicated one, as there historically have been various attempts to implement something like a VIM mode, which regularly collided with existing key bindings or where you just couldn't get the required keyboard handling work reliably. Also having the keymap fixed for now, until a good solution to implement VIM mode and other key-binding related issues, might simplify going forward with having a good baseline for implementing the keymap modification features later. Thus for now I'd suggest keeping with one key for external commands (what about r for run?) and displaying a menu to select the actual command from there (or run directly, if just one such command is configured).

@TheJJ
Copy link
Copy Markdown

TheJJ commented Dec 3, 2020

Yea that sounds good for now, having a run-tool key like r and defining a call-api (e.g. via env-vars?) so i could have a python-dispatcher that then invokes whatever tool necessary.

I think as the long-term-goal htop would benefit a lot if one could freely assign keys to actions, so you could have a htop, vim, emacs, whatever mode by rearranging the bindings in the config file.

@BenBE
Copy link
Copy Markdown
Member

BenBE commented Dec 3, 2020

Yea that sounds good for now, having a run-tool key like r and defining a call-api (e.g. via env-vars?) so i could have a python-dispatcher that then invokes whatever tool necessary.

Do you mind extending this PR in that direction? / Open a new one to superseed this one?

I think as the long-term-goal htop would benefit a lot if one could freely assign keys to actions, so you could have a htop, vim, emacs, whatever mode by rearranging the bindings in the config file.

Fully customizable key bindings for htop is probably a long-term goal and should be handled independent of this PR. But given there have been inquiries about this repeatedly in the past, there seems to be some interest in it.

@fasterit
Copy link
Copy Markdown
Member

Closed in favor of the more general approach to be implemented cf. #506

@fasterit fasterit closed this Jan 31, 2021
cgzones added a commit to cgzones/htop that referenced this pull request Jun 21, 2022
ProcessList.c:242:36: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
    #0 0x561cfec000a8 in ProcessList_buildTreeBranch ProcessList.c:242:36
    #1 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #2 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#3 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#4 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#5 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#6 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#7 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#8 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#9 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#10 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#11 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#12 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#13 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#14 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#15 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#16 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#17 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#18 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#19 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#20 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#21 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#22 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#23 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#24 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#25 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#26 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#27 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#28 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#29 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#30 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#31 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#32 0x561cfebfb734 in ProcessList_buildTree ProcessList.c:312:10
    htop-dev#33 0x561cfebfb050 in ProcessList_updateDisplayList ProcessList.c:326:10
    htop-dev#34 0x561cfebfc58b in ProcessList_rebuildPanel ProcessList.c:374:4
    htop-dev#35 0x561cfec07953 in checkRecalculation ScreenManager.c:139:7
    htop-dev#36 0x561cfec07953 in ScreenManager_run ScreenManager.c:226:10
    htop-dev#37 0x561cfeb8899a in CommandLine_run CommandLine.c:378:4
    htop-dev#38 0x561cfeb6d6d4 in main htop.c:15:11
    htop-dev#39 0x7f14860291e9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    htop-dev#40 0x7f148602929b in __libc_start_main csu/../csu/libc-start.c:392:3
    htop-dev#41 0x561cfeaafb20 in _start (htop+0x105b20) (BuildId: fc4b9e52ffc111ca8b4cd53136a238414120a858)
cgzones added a commit to cgzones/htop that referenced this pull request Jun 22, 2022
ProcessList.c:242:36: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
    #0 0x561cfec000a8 in ProcessList_buildTreeBranch ProcessList.c:242:36
    #1 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #2 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#3 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#4 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#5 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#6 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#7 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#8 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#9 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#10 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#11 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#12 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#13 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#14 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#15 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#16 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#17 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#18 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#19 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#20 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#21 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#22 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#23 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#24 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#25 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#26 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#27 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#28 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#29 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#30 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#31 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#32 0x561cfebfb734 in ProcessList_buildTree ProcessList.c:312:10
    htop-dev#33 0x561cfebfb050 in ProcessList_updateDisplayList ProcessList.c:326:10
    htop-dev#34 0x561cfebfc58b in ProcessList_rebuildPanel ProcessList.c:374:4
    htop-dev#35 0x561cfec07953 in checkRecalculation ScreenManager.c:139:7
    htop-dev#36 0x561cfec07953 in ScreenManager_run ScreenManager.c:226:10
    htop-dev#37 0x561cfeb8899a in CommandLine_run CommandLine.c:378:4
    htop-dev#38 0x561cfeb6d6d4 in main htop.c:15:11
    htop-dev#39 0x7f14860291e9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    htop-dev#40 0x7f148602929b in __libc_start_main csu/../csu/libc-start.c:392:3
    htop-dev#41 0x561cfeaafb20 in _start (htop+0x105b20) (BuildId: fc4b9e52ffc111ca8b4cd53136a238414120a858)
cgzones added a commit to cgzones/htop that referenced this pull request Jun 28, 2022
ProcessList.c:242:36: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
    #0 0x561cfec000a8 in ProcessList_buildTreeBranch ProcessList.c:242:36
    #1 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #2 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#3 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#4 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#5 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#6 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#7 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#8 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#9 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#10 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#11 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#12 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#13 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#14 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#15 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#16 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#17 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#18 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#19 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#20 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#21 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#22 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#23 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#24 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#25 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#26 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#27 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#28 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#29 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#30 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#31 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#32 0x561cfebfb734 in ProcessList_buildTree ProcessList.c:312:10
    htop-dev#33 0x561cfebfb050 in ProcessList_updateDisplayList ProcessList.c:326:10
    htop-dev#34 0x561cfebfc58b in ProcessList_rebuildPanel ProcessList.c:374:4
    htop-dev#35 0x561cfec07953 in checkRecalculation ScreenManager.c:139:7
    htop-dev#36 0x561cfec07953 in ScreenManager_run ScreenManager.c:226:10
    htop-dev#37 0x561cfeb8899a in CommandLine_run CommandLine.c:378:4
    htop-dev#38 0x561cfeb6d6d4 in main htop.c:15:11
    htop-dev#39 0x7f14860291e9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    htop-dev#40 0x7f148602929b in __libc_start_main csu/../csu/libc-start.c:392:3
    htop-dev#41 0x561cfeaafb20 in _start (htop+0x105b20) (BuildId: fc4b9e52ffc111ca8b4cd53136a238414120a858)
cgzones added a commit to cgzones/htop that referenced this pull request Jun 28, 2022
ProcessList.c:242:36: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
    #0 0x561cfec000a8 in ProcessList_buildTreeBranch ProcessList.c:242:36
    #1 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #2 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#3 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#4 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#5 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#6 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#7 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#8 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#9 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#10 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#11 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#12 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#13 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#14 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#15 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#16 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#17 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#18 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#19 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#20 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#21 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#22 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#23 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#24 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#25 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#26 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#27 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#28 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#29 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#30 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#31 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#32 0x561cfebfb734 in ProcessList_buildTree ProcessList.c:312:10
    htop-dev#33 0x561cfebfb050 in ProcessList_updateDisplayList ProcessList.c:326:10
    htop-dev#34 0x561cfebfc58b in ProcessList_rebuildPanel ProcessList.c:374:4
    htop-dev#35 0x561cfec07953 in checkRecalculation ScreenManager.c:139:7
    htop-dev#36 0x561cfec07953 in ScreenManager_run ScreenManager.c:226:10
    htop-dev#37 0x561cfeb8899a in CommandLine_run CommandLine.c:378:4
    htop-dev#38 0x561cfeb6d6d4 in main htop.c:15:11
    htop-dev#39 0x7f14860291e9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    htop-dev#40 0x7f148602929b in __libc_start_main csu/../csu/libc-start.c:392:3
    htop-dev#41 0x561cfeaafb20 in _start (htop+0x105b20) (BuildId: fc4b9e52ffc111ca8b4cd53136a238414120a858)
cgzones added a commit to cgzones/htop that referenced this pull request Jun 28, 2022
Also increase the limit for nesting by using 64 bit integers.

ProcessList.c:242:36: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
    #0 0x561cfec000a8 in ProcessList_buildTreeBranch ProcessList.c:242:36
    #1 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #2 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#3 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#4 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#5 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#6 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#7 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#8 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#9 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#10 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#11 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#12 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#13 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#14 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#15 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#16 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#17 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#18 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#19 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#20 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#21 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#22 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#23 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#24 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#25 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#26 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#27 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#28 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#29 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#30 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#31 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#32 0x561cfebfb734 in ProcessList_buildTree ProcessList.c:312:10
    htop-dev#33 0x561cfebfb050 in ProcessList_updateDisplayList ProcessList.c:326:10
    htop-dev#34 0x561cfebfc58b in ProcessList_rebuildPanel ProcessList.c:374:4
    htop-dev#35 0x561cfec07953 in checkRecalculation ScreenManager.c:139:7
    htop-dev#36 0x561cfec07953 in ScreenManager_run ScreenManager.c:226:10
    htop-dev#37 0x561cfeb8899a in CommandLine_run CommandLine.c:378:4
    htop-dev#38 0x561cfeb6d6d4 in main htop.c:15:11
    htop-dev#39 0x7f14860291e9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    htop-dev#40 0x7f148602929b in __libc_start_main csu/../csu/libc-start.c:392:3
    htop-dev#41 0x561cfeaafb20 in _start (htop+0x105b20) (BuildId: fc4b9e52ffc111ca8b4cd53136a238414120a858)
cgzones added a commit to cgzones/htop that referenced this pull request Jun 28, 2022
Also increase the limit for nesting by using 64 bit integers.

ProcessList.c:242:36: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
    #0 0x561cfec000a8 in ProcessList_buildTreeBranch ProcessList.c:242:36
    #1 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #2 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#3 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#4 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#5 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#6 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#7 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#8 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#9 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#10 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#11 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#12 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#13 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#14 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#15 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#16 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#17 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#18 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#19 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#20 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#21 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#22 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#23 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#24 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#25 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#26 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#27 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#28 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#29 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#30 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#31 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#32 0x561cfebfb734 in ProcessList_buildTree ProcessList.c:312:10
    htop-dev#33 0x561cfebfb050 in ProcessList_updateDisplayList ProcessList.c:326:10
    htop-dev#34 0x561cfebfc58b in ProcessList_rebuildPanel ProcessList.c:374:4
    htop-dev#35 0x561cfec07953 in checkRecalculation ScreenManager.c:139:7
    htop-dev#36 0x561cfec07953 in ScreenManager_run ScreenManager.c:226:10
    htop-dev#37 0x561cfeb8899a in CommandLine_run CommandLine.c:378:4
    htop-dev#38 0x561cfeb6d6d4 in main htop.c:15:11
    htop-dev#39 0x7f14860291e9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    htop-dev#40 0x7f148602929b in __libc_start_main csu/../csu/libc-start.c:392:3
    htop-dev#41 0x561cfeaafb20 in _start (htop+0x105b20) (BuildId: fc4b9e52ffc111ca8b4cd53136a238414120a858)
cgzones added a commit to cgzones/htop that referenced this pull request Jul 11, 2022
Also increase the limit for nesting by using 64 bit integers.

ProcessList.c:242:36: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
    #0 0x561cfec000a8 in ProcessList_buildTreeBranch ProcessList.c:242:36
    #1 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #2 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#3 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#4 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#5 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#6 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#7 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#8 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#9 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#10 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#11 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#12 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#13 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#14 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#15 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#16 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#17 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#18 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#19 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#20 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#21 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#22 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#23 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#24 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#25 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#26 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#27 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#28 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#29 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#30 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#31 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    htop-dev#32 0x561cfebfb734 in ProcessList_buildTree ProcessList.c:312:10
    htop-dev#33 0x561cfebfb050 in ProcessList_updateDisplayList ProcessList.c:326:10
    htop-dev#34 0x561cfebfc58b in ProcessList_rebuildPanel ProcessList.c:374:4
    htop-dev#35 0x561cfec07953 in checkRecalculation ScreenManager.c:139:7
    htop-dev#36 0x561cfec07953 in ScreenManager_run ScreenManager.c:226:10
    htop-dev#37 0x561cfeb8899a in CommandLine_run CommandLine.c:378:4
    htop-dev#38 0x561cfeb6d6d4 in main htop.c:15:11
    htop-dev#39 0x7f14860291e9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    htop-dev#40 0x7f148602929b in __libc_start_main csu/../csu/libc-start.c:392:3
    htop-dev#41 0x561cfeaafb20 in _start (htop+0x105b20) (BuildId: fc4b9e52ffc111ca8b4cd53136a238414120a858)
BenBE pushed a commit that referenced this pull request Aug 4, 2022
Also increase the limit for nesting by using 64 bit integers.

ProcessList.c:242:36: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
    #0 0x561cfec000a8 in ProcessList_buildTreeBranch ProcessList.c:242:36
    #1 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #2 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #3 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #4 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #5 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #6 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #7 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #8 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #9 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #10 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #11 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #12 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #13 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #14 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #15 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #16 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #17 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #18 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #19 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #20 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #21 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #22 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #23 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #24 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #25 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #26 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #27 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #28 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #29 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #30 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #31 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7
    #32 0x561cfebfb734 in ProcessList_buildTree ProcessList.c:312:10
    #33 0x561cfebfb050 in ProcessList_updateDisplayList ProcessList.c:326:10
    #34 0x561cfebfc58b in ProcessList_rebuildPanel ProcessList.c:374:4
    #35 0x561cfec07953 in checkRecalculation ScreenManager.c:139:7
    #36 0x561cfec07953 in ScreenManager_run ScreenManager.c:226:10
    #37 0x561cfeb8899a in CommandLine_run CommandLine.c:378:4
    #38 0x561cfeb6d6d4 in main htop.c:15:11
    #39 0x7f14860291e9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #40 0x7f148602929b in __libc_start_main csu/../csu/libc-start.c:392:3
    #41 0x561cfeaafb20 in _start (htop+0x105b20) (BuildId: fc4b9e52ffc111ca8b4cd53136a238414120a858)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Extension or improvement to existing feature needs-discussion 🤔 Changes need to be discussed and require consent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants