microsoft / microsoft/vscode-cpptools
Failing to run with Fish shell
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 6.2k
- Forks
- 1.7k
- Avg merge
- 14h 46m
- Merged PRs (30d)
- 61
Description
Environment
- OS and version: NixOS
- VS Code: 1.91.0
- C/C++ extension: 1.20.5
- OS and version of remote machine (if applicable):
- GDB / LLDB version: 14.2 (gdb)
- Shell: Fish
Bug Summary and Steps to Reproduce
Bug Summary:
Write a minimal hello world
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
A minimal launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) A",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/a.out",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
},
]
}
Steps to reproduce:
- In this environment when I run the debug window nothing happens and the debug toolbar is there but no breakpoint is hit or the process is not run.
When I run with my FISH shell i see the above problem.
- I instead do:
SHELL=$(which bash)
code .
And now I can debug.
There must be some scripts that are being executed that assume it is on a bash/zsh compatible shell.
Visual Studio code should be explicit about running it on the shell program it wants.
Debugger Configurations
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) A",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/a.out",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"logging": {
"trace": true,
"traceResponse": true,
"engineLogging": true
},
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": false
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": false
}
],
"miDebuggerPath": "/run/current-system/sw/bin/gdb",
},
]
}
### Debugger Logs
```shell
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (62) LaunchOptions{\"name\":\"(gdb) A\",\"type\":\"cppdbg\",\"request\":\"launch\",\"program\":\"/home/fmzakari/code/experiments/nix/hello-world/a.out\",\"args\":[],\"stopAtEntry\":true,\"cwd\":\"/home/fmzakari/code/experiments/nix/hello-world\",\"environment\":[],\"externalConsole\":false,\"MIMode\":\"gdb\",\"logging\":{\"trace\":true,\"traceResponse\":true,\"engineLogging\":true},\"setupCommands\":[{\"description\":\"Enable pretty-printing for gdb\",\"text\":\"-enable-pretty-printing\",\"ignoreFailures\":false},{\"description\":\"Set Disassembly Flavor to Intel\",\"text\":\"-gdb-set disassembly-flavor intel\",\"ignoreFailures\":false}],\"miDebuggerPath\":\"/run/current-system/sw/bin/gdb\",\"__configurationTarget\":6,\"__sessionId\":\"dc7f765a-6482-4230-a3af-61bff9fb450c\"}\n"},"seq":2}
1: (62) LaunchOptions{"name":"(gdb) A","type":"cppdbg","request":"launch","program":"/home/fmzakari/code/experiments/nix/hello-world/a.out","args":[],"stopAtEntry":true,"cwd":"/home/fmzakari/code/experiments/nix/hello-world","environment":[],"externalConsole":false,"MIMode":"gdb","logging":{"trace":true,"traceResponse":true,"engineLogging":true},"setupCommands":[{"description":"Enable pretty-printing for gdb","text":"-enable-pretty-printing","ignoreFailures":false},{"description":"Set Disassembly Flavor to Intel","text":"-gdb-set disassembly-flavor intel","ignoreFailures":false}],"miDebuggerPath":"/run/current-system/sw/bin/gdb","__configurationTarget":6,"__sessionId":"dc7f765a-6482-4230-a3af-61bff9fb450c"}
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (107) DbgCmd:echo $$ > /tmp/Microsoft-MIEngine-Pid-4zjrcxqv.y1a ; cd \"/home/fmzakari/code/experiments/nix/hello-world\" ; DbgTerm=`tty` ; set -o monitor ; trap 'rm \"/tmp/Microsoft-MIEngine-In-uelqjl1k.u2h\" \"/tmp/Microsoft-MIEngine-Out-x3cnp2r3.0kc\" \"/tmp/Microsoft-MIEngine-Pid-4zjrcxqv.y1a\" \"/tmp/Microsoft-MIEngine-Cmd-l42jm40x.3ih\"' EXIT ; \"/run/current-system/sw/bin/gdb\" --interpreter=mi --tty=$DbgTerm < \"/tmp/Microsoft-MIEngine-In-uelqjl1k.u2h\" > \"/tmp/Microsoft-MIEngine-Out-x3cnp2r3.0kc\" & clear; pid=$! ; echo $pid > \"/tmp/Microsoft-MIEngine-Pid-4zjrcxqv.y1a\" ; wait $pid; \n"},"seq":4}
1: (107) DbgCmd:echo $$ > /tmp/Microsoft-MIEngine-Pid-4zjrcxqv.y1a ; cd "/home/fmzakari/code/experiments/nix/hello-world" ; DbgTerm=`tty` ; set -o monitor ; trap 'rm "/tmp/Microsoft-MIEngine-In-uelqjl1k.u2h" "/tmp/Microsoft-MIEngine-Out-x3cnp2r3.0kc" "/tmp/Microsoft-MIEngine-Pid-4zjrcxqv.y1a" "/tmp/Microsoft-MIEngine-Cmd-l42jm40x.3ih"' EXIT ; "/run/current-system/sw/bin/gdb" --interpreter=mi --tty=$DbgTerm < "/tmp/Microsoft-MIEngine-In-uelqjl1k.u2h" > "/tmp/Microsoft-MIEngine-Out-x3cnp2r3.0kc" & clear; pid=$! ; echo $pid > "/tmp/Microsoft-MIEngine-Pid-4zjrcxqv.y1a" ; wait $pid;
--> C (runInTerminal-6): {"type":"request","command":"runInTerminal","arguments":{"kind":"integrated","title":"cppdbg: a.out","cwd":"","args":["/bin/sh","/tmp/Microsoft-MIEngine-Cmd-l42jm40x.3ih"],"env":{}},"seq":6}
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (116) Wait for connection completion.\n"},"seq":8}
1: (116) Wait for connection completion.
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2075) ->=thread-group-added,id=\"i1\"\n"},"seq":10}
1: (2075) ->=thread-group-added,id="i1"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2077) ->~\"GNU gdb (GDB) 14.2\\n\"\n"},"seq":12}
1: (2077) ->~"GNU gdb (GDB) 14.2\n"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2077) ->~\"Copyright (C) 2023 Free Software Foundation, Inc.\\n\"\n"},"seq":14}
1: (2077) ->~"Copyright (C) 2023 Free Software Foundation, Inc.\n"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2077) ->~\"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\\nThis is free software: you are free to change and redistribute it.\\nThere is NO WARRANTY, to the extent permitted by law.\"\n"},"seq":16}
1: (2077) ->~"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law."
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2077) ->~\"\\nType \\\"show copying\\\" and \\\"show warranty\\\" for details.\\n\"\n"},"seq":18}
1: (2077) ->~"\nType \"show copying\" and \"show warranty\" for details.\n"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2077) ->~\"This GDB was configured as \\\"x86_64-unknown-linux-gnu\\\".\\n\"\n"},"seq":20}
1: (2077) ->~"This GDB was configured as \"x86_64-unknown-linux-gnu\".\n"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2077) ->~\"Type \\\"show configuration\\\" for configuration details.\\n\"\n"},"seq":22}
1: (2077) ->~"Type \"show configuration\" for configuration details.\n"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2077) ->~\"For bug reporting instructions, please see:\\n\"\n"},"seq":24}
1: (2077) ->~"For bug reporting instructions, please see:\n"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2077) ->~\"<https://www.gnu.org/software/gdb/bugs/>.\\n\"\n"},"seq":26}
1: (2077) ->~"<https://www.gnu.org/software/gdb/bugs/>.\n"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2077) ->~\"Find the GDB manual and other documentation resources online at:\\n <\"\n"},"seq":28}
1: (2077) ->~"Find the GDB manual and other documentation resources online at:\n <"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2077) ->~\"http://www.gnu.org/software/gdb/documentation/>.\\n\\n\"\n"},"seq":30}
1: (2077) ->~"http://www.gnu.org/software/gdb/documentation/>.\n\n"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2077) ->~\"For help, type \\\"help\\\".\\n\"\n"},"seq":32}
1: (2077) ->~"For help, type \"help\".\n"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2077) ->~\"Type \\\"apropos word\\\" to search for commands related to \\\"word\\\".\\n\"\n"},"seq":34}
1: (2077) ->~"Type \"apropos word\" to search for commands related to \"word\".\n"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2077) ->(gdb)\n"},"seq":36}
1: (2077) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2082) <-1001-gdb-set mi-async on\n"},"seq":38}
1: (2082) <-1001-gdb-set mi-async on
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2083) ->1001^done\n"},"seq":40}
1: (2083) ->1001^done
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2083) ->(gdb)\n"},"seq":42}
1: (2083) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2085) 1001: elapsed time 4\n"},"seq":44}
1: (2085) 1001: elapsed time 4
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2094) <-1002-enable-pretty-printing\n"},"seq":46}
1: (2094) <-1002-enable-pretty-printing
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2095) ->1002^done\n"},"seq":48}
1: (2095) ->1002^done
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2095) ->(gdb)\n"},"seq":50}
1: (2095) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2095) 1002: elapsed time 1\n"},"seq":52}
1: (2095) 1002: elapsed time 1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2096) <-1003-gdb-set disassembly-flavor intel\n"},"seq":54}
1: (2096) <-1003-gdb-set disassembly-flavor intel
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2097) ->1003^done\n"},"seq":56}
1: (2097) ->1003^done
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2097) ->(gdb)\n"},"seq":58}
1: (2097) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2097) 1003: elapsed time 1\n"},"seq":60}
1: (2097) 1003: elapsed time 1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2097) <-1004-interpreter-exec console \"set pagination off\"\n"},"seq":62}
1: (2097) <-1004-interpreter-exec console "set pagination off"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2099) ->=cmd-param-changed,param=\"pagination\",value=\"off\"\n"},"seq":64}
1: (2099) ->=cmd-param-changed,param="pagination",value="off"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2099) ->1004^done\n"},"seq":66}
1: (2099) ->1004^done
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2099) ->(gdb)\n"},"seq":68}
1: (2099) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2099) 1004: elapsed time 1\n"},"seq":70}
1: (2099) 1004: elapsed time 1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2099) <-1005-gdb-set auto-solib-add on\n"},"seq":72}
1: (2099) <-1005-gdb-set auto-solib-add on
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2100) ->1005^done\n"},"seq":74}
1: (2100) ->1005^done
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2100) ->(gdb)\n"},"seq":76}
1: (2100) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2100) 1005: elapsed time 1\n"},"seq":78}
1: (2100) 1005: elapsed time 1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2101) <-1006-gdb-set solib-search-path /home/fmzakari/code/experiments/nix/hello-world:\n"},"seq":80}
1: (2101) <-1006-gdb-set solib-search-path /home/fmzakari/code/experiments/nix/hello-world:
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2103) ->1006^done\n"},"seq":82}
1: (2103) ->1006^done
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2103) ->(gdb)\n"},"seq":84}
1: (2103) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2103) 1006: elapsed time 2\n"},"seq":86}
1: (2103) 1006: elapsed time 2
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2104) <-1007-gdb-set stop-on-solib-events 1\n"},"seq":88}
1: (2104) <-1007-gdb-set stop-on-solib-events 1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2105) ->1007^done\n"},"seq":90}
1: (2105) ->1007^done
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2106) ->(gdb)\n"},"seq":92}
1: (2106) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2106) 1007: elapsed time 1\n"},"seq":94}
1: (2106) 1007: elapsed time 1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2106) <-1008-environment-cd /home/fmzakari/code/experiments/nix/hello-world\n"},"seq":96}
1: (2106) <-1008-environment-cd /home/fmzakari/code/experiments/nix/hello-world
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2108) ->1008^done\n"},"seq":98}
1: (2108) ->1008^done
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2108) ->(gdb)\n"},"seq":100}
1: (2108) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2108) 1008: elapsed time 2\n"},"seq":102}
1: (2108) 1008: elapsed time 2
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2108) <-1009-file-exec-and-symbols /home/fmzakari/code/experiments/nix/hello-world/a.out\n"},"seq":104}
1: (2108) <-1009-file-exec-and-symbols /home/fmzakari/code/experiments/nix/hello-world/a.out
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2113) ->1009^done\n"},"seq":106}
1: (2113) ->1009^done
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2113) ->(gdb)\n"},"seq":108}
1: (2113) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2114) 1009: elapsed time 5\n"},"seq":110}
1: (2114) 1009: elapsed time 5
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2116) <-1010-interpreter-exec console \"show architecture\"\n"},"seq":112}
1: (2116) <-1010-interpreter-exec console "show architecture"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2117) ->~\"The target architecture is set to \\\"auto\\\" (currently \\\"i386:x86-64\\\").\\n\"\n"},"seq":114}
1: (2117) ->~"The target architecture is set to \"auto\" (currently \"i386:x86-64\").\n"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2118) ->1010^done\n"},"seq":116}
1: (2118) ->1010^done
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2118) ->(gdb)\n"},"seq":118}
1: (2118) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2118) 1010: elapsed time 2\n"},"seq":120}
1: (2118) 1010: elapsed time 2
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2119) <-1011-break-insert -f main\n"},"seq":122}
1: (2119) <-1011-break-insert -f main
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2121) ->1011^done,bkpt={number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"0x000000000040112a\",func=\"main\",file=\"hello_world.c\",fullname=\"/home/fmzakari/code/experiments/nix/hello-world/hello_world.c\",line=\"4\",thread-groups=[\"i1\"],times=\"0\",original-location=\"main\"}\n"},"seq":124}
1: (2121) ->1011^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x000000000040112a",func="main",file="hello_world.c",fullname="/home/fmzakari/code/experiments/nix/hello-world/hello_world.c",line="4",thread-groups=["i1"],times="0",original-location="main"}
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2122) ->(gdb)\n"},"seq":126}
1: (2122) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2126) 1011: elapsed time 6\n"},"seq":128}
1: (2126) 1011: elapsed time 6
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2132) Send Event AD7EngineCreateEvent\n"},"seq":130}
1: (2132) Send Event AD7EngineCreateEvent
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2134) Send Event AD7ProgramCreateEvent\n"},"seq":132}
1: (2134) Send Event AD7ProgramCreateEvent
--> E (output): {"type":"event","event":"output","body":{"category":"telemetry","output":"VS/Diagnostics/Debugger/Launch","data":{"VS.Diagnostics.Debugger.ImplementationName":"Microsoft.MIDebugEngine","VS.Diagnostics.Debugger.EngineVersion":"17.8.20302.1","VS.Diagnostics.Debugger.HostVersion":"17.8.20302.1","VS.Diagnostics.Debugger.AdapterId":"cppdbg","VS.Diagnostics.Debugger.Launch.Duration":2086,"VS.Diagnostics.Debugger.MIMode":"gdb","VS.Diagnostics.Debugger.FrameworkVersion":"6.0.2724.6912"}},"seq":134}
--> R (launch-2): {"type":"response","request_seq":2,"success":true,"command":"launch","body":{},"seq":136}
--> E (initialized): {"type":"event","event":"initialized","body":{},"seq":138}
<-- R (runInTerminal-6) [2032 ms]: {"type":"response","seq":3,"command":"runInTerminal","request_seq":6,"success":true,"body":{"shellProcessId":343682}}
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2162) ShellPid=343771\n"},"seq":141}
1: (2162) ShellPid=343771
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2163) DebuggerPid=343773\n"},"seq":143}
1: (2163) DebuggerPid=343773
<-- C (setFunctionBreakpoints-4): {"command":"setFunctionBreakpoints","arguments":{"breakpoints":[]},"type":"request","seq":4}
--> R (setFunctionBreakpoints-4): {"type":"response","request_seq":4,"success":true,"command":"setFunctionBreakpoints","body":{"breakpoints":[]},"seq":146}
<-- C (setInstructionBreakpoints-5): {"command":"setInstructionBreakpoints","arguments":{"breakpoints":[]},"type":"request","seq":5}
--> R (setInstructionBreakpoints-5): {"type":"response","request_seq":5,"success":true,"command":"setInstructionBreakpoints","body":{"breakpoints":[]},"seq":149}
<-- C (setExceptionBreakpoints-6): {"command":"setExceptionBreakpoints","arguments":{"filters":[],"filterOptions":[]},"type":"request","seq":6}
--> R (setExceptionBreakpoints-6): {"type":"response","request_seq":6,"success":true,"command":"setExceptionBreakpoints","body":{"breakpoints":[]},"seq":152}
<-- C (setDataBreakpoints-7): {"command":"setDataBreakpoints","arguments":{"breakpoints":[]},"type":"request","seq":7}
--> R (setDataBreakpoints-7): {"type":"response","request_seq":7,"success":true,"command":"setDataBreakpoints","body":{"breakpoints":[]},"seq":155}
<-- C (configurationDone-8): {"command":"configurationDone","type":"request","seq":8}
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2246) Send Event AD7LoadCompleteEvent\n"},"seq":159}
1: (2246) Send Event AD7LoadCompleteEvent
--> R (configurationDone-8): {"type":"response","request_seq":8,"success":true,"command":"configurationDone","body":{},"seq":158}
--> E (output): {"type":"event","event":"output","body":{"category":"stdout","output":"=thread-group-added,id=\"i1\"\nGNU gdb (GDB) 14.2\nCopyright (C) 2023 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\nType \"show copying\" and \"show warranty\" for details.\nThis GDB was configured as \"x86_64-unknown-linux-gnu\".\nType \"show configuration\" for configuration details.\nFor bug reporting instructions, please see:\n<https://www.gnu.org/software/gdb/bugs/>.\nFind the GDB manual and other documentation resources online at:\n <http://www.gnu.org/software/gdb/documentation/>.\n\nFor help, type \"help\".\nType \"apropos word\" to search for commands related to \"word\".\nWarning: Debuggee TargetArchitecture not detected, assuming x86_64.\n=cmd-param-changed,param=\"pagination\",value=\"off\"\n"},"seq":162}
=thread-group-added,id="i1"
GNU gdb (GDB) 14.2
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Warning: Debuggee TargetArchitecture not detected, assuming x86_64.
=cmd-param-changed,param="pagination",value="off"
<-- C (threads-9): {"command":"threads","type":"request","seq":9}
--> R (threads-9): {"type":"response","request_seq":9,"success":true,"command":"threads","body":{"threads":[]},"seq":165}
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2257) <-1012-exec-run\n"},"seq":167}
1: (2257) <-1012-exec-run
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2259) ->=thread-group-started,id=\"i1\",pid=\"343807\"\n"},"seq":169}
1: (2259) ->=thread-group-started,id="i1",pid="343807"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2259) ->=thread-created,id=\"1\",group-id=\"i1\"\n"},"seq":171}
1: (2259) ->=thread-created,id="1",group-id="i1"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2259) ->=thread-exited,id=\"1\",group-id=\"i1\"\n"},"seq":173}
1: (2259) ->=thread-exited,id="1",group-id="i1"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2259) ->=thread-group-exited,id=\"i1\"\n"},"seq":175}
1: (2259) ->=thread-group-exited,id="i1"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2260) ->1012^error,msg=\"During startup program exited with code 127.\"\n"},"seq":177}
1: (2260) ->1012^error,msg="During startup program exited with code 127."
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2260) ->(gdb)\n"},"seq":179}
1: (2260) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2262) <-1013-thread-info 1\n"},"seq":181}
1: (2262) <-1013-thread-info 1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2262) ->1013^done,threads=[]\n"},"seq":183}
1: (2262) ->1013^done,threads=[]
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2262) ->(gdb)\n"},"seq":185}
1: (2262) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2264) 1012: elapsed time 7\n"},"seq":187}
1: (2264) 1012: elapsed time 7
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2266) 1013: elapsed time 4\n"},"seq":189}
1: (2266) 1013: elapsed time 4
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2267) Send Event AD7MessageEvent\n"},"seq":191}
1: (2267) Send Event AD7MessageEvent
--> E (output): {"type":"event","event":"output","body":{"category":"stderr","output":"ERROR: Unable to start debugging. Unexpected GDB output from command \"-exec-run\". During startup program exited with code 127.\n"},"seq":193}
ERROR: Unable to start debugging. Unexpected GDB output from command "-exec-run". During startup program exited with code 127.
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2269) <--gdb-exit\n"},"seq":195}
1: (2269) <--gdb-exit
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2270) ->^exit\n"},"seq":197}
1: (2270) ->^exit
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (2274) Send Event AD7ProgramDestroyEvent\n"},"seq":199}
1: (2274) Send Event AD7ProgramDestroyEvent
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"The program '/home/fmzakari/code/experiments/nix/hello-world/a.out' has exited with code 0 (0x00000000).\r\n\n"},"seq":201}
The program '/home/fmzakari/code/experiments/nix/hello-world/a.out' has exited with code 0 (0x00000000).
--> E (exited): {"type":"event","event":"exited","body":{"exitCode":0},"seq":203}
--> E (terminated): {"type":"event","event":"terminated","body":{},"seq":205}
--> E (output): {"type":"event","event":"output","body":{"category":"telemetry","output":"VS/Diagnostics/Debugger/DebugCompleted","data":{"VS.Diagnostics.Debugger.ImplementationName":"Microsoft.MIDebugEngine","VS.Diagnostics.Debugger.EngineVersion":"17.8.20302.1","VS.Diagnostics.Debugger.HostVersion":"17.8.20302.1","VS.Diagnostics.Debugger.AdapterId":"cppdbg","VS.Diagnostics.Debugger.DebugCompleted.BreakCounter":0}},"seq":207}
<-- C (disconnect-10): {"command":"disconnect","arguments":{"restart":false},"type":"request","seq":10}
--> R (disconnect-10): {"type":"response","request_seq":10,"success":true,"command":"disconnect","body":{},"seq":210}
Other Extensions
No response
Additional Information
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue with the provided C++ hello-world program, launch.json, Fish shell, and GDB 14.2, then compare it with starting VS Code using SHELL=$(which bash). Use the debugger logs, especially the generated shell command and runInTerminal request, to identify the Fish incompatibility. Done means the same debugging session starts and reaches the breakpoint under Fish.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, fish, typescript
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100