vscode-cpptools icon indicating copy to clipboard operation
vscode-cpptools copied to clipboard

Sudo elevation not working with gdb

Open letmaik opened this issue 4 years ago • 5 comments

Type: Debugger

Describe the bug

  • OS and Version: Ubuntu 18.04.2
  • VS Code Version: 1.38.0
  • C/C++ Extension Version: 0.25.1
  • Other extensions you installed (and if the issue persists after disabling them):
  • A clear and concise description of what the bug is.

When trying to attach with gdb it correctly asks "Superuser access is required to attach to a process. Attaching as superuser can potentially harm your computer. Do you want to continue? [y/N]". After typing "y" and enter, I get the following:

==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/usr/bin/gdb' as the super user
Multiple identities can be used for authentication:
 1.  ...
 2.  ...
 ...
Choose identity to authenticate as (1-16): [1] + Stopped (tty input)        /usr/bin/pkexec "/usr/bin/gdb" --interpreter=mi --tty=${DbgTerm} 0<"/tmp/Microsoft-MIEngine-In-hrnsnxv9.sdc" 1>"/tmp/Microsoft-MIEngine-Out-prn74k9m.v7c"
You have stopped jobs.

It immediately stops and doesn't let me select an identity. It says "Running" in the debug view but this seems not correct, also nothing happens when pressing pause.

To Reproduce Please include a code sample and launch.json configuration.

        {
            "name": "Attach",
            "type": "cppdbg",
            "request": "attach",
            "MIMode": "gdb",
            "program": "...",
            "processId": "${command:pickProcess}",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },

Additional context If applicable, please include logging by adding "logging": { "engineLogging": true, "trace": true, "traceResponse": true } in your launch.json Add any other context about the problem here including log or error messages in your Debug Console or Output windows.

letmaik avatar Sep 05 '19 13:09 letmaik

This sounds like #4133. Are you able to change your ptrace_scope value?

pieandcakes avatar Sep 09 '19 20:09 pieandcakes

The original ptrace_scope value was 1. When I change it to 0 with echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope everything works.

letmaik avatar Sep 10 '19 07:09 letmaik

That can be the work around for now. I think with pkexec allowing selection of profiles to elevate to needs some more investigation.

pieandcakes avatar Sep 10 '19 17:09 pieandcakes

The original ptrace_scope value was 1. When I change it to 0 with echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope everything works.

Unfortunately, it does not solve the problem for me. I get prompt by pkexec and it doe not wait for the next prompts

saareliad avatar Aug 03 '22 09:08 saareliad

Has anyone found a workaround for this? We're hitting this with our shared test machine that has multiple accounts.

sean-mcmanus avatar Aug 30 '22 23:08 sean-mcmanus