WebFreak001 / code-debug

Native debugging for VSCode
The Unlicense
401 stars 114 forks source link

Missing support for remote GDB via intermediate remote server #192

Open illegal-instruction opened 4 years ago

illegal-instruction commented 4 years ago

I'm trying to use the extension to debug some C code in a remote server. That server is defined in my .ssh/config as 'gdb_server' and is accessed via an intermediate remote server:

Host gdb_server
 Hostname xxx.yyy.zz.aa
 Port 2038
 User <someuser>
 ServerAliveInterval 60
 ProxyCommand ssh <intermediate_user>@<intermediate.server.com> nc %h %p %r

If I use this configuration:

 "ssh": {
   "host": "gdb_server",
   "cwd": "<app_root_path@remote_server>",
   "keyfile": "/home/(omitted)/.ssh/id_rsa",
    "user": "<intermediate_user>",
    "port": 2038,
    "bootstrap": "<some scripts>"
}

I get the following error:

Could not run gdb over ssh!
Error: getaddrinfo ENOTFOUND  gdb_server:2038

Using the 'port' to '22' returns the same error.

Couldn't find any other parameter to configure this kind of 'intermediate-ssh' setup. In other cases, I've been able to use the extension to debug in a server accessible from my computer without any issue.

I guess the idea should be (I have no idea how the extension works internally so I don't know how hard it is), to enable the support of 'ssh/config named configurations', like gdb_server in this example.

Thanks for your time, C

P.D: In any case this extension is awesome!

WebFreak001 commented 4 years ago

the extension is using the https://www.npmjs.com/package/ssh2 library which is a pure JS implementation of SSH and doens't support loading that ssh/config file. So instead it would be necessary to load and parse the ssh config for the current user with all ssh options which we want to support considered.

mohamedchebbii commented 4 years ago

@WebFreak001 : Can you please add the socksv5 to support remote GDB via intermediate remote server ? as described here : https://www.npmjs.com/package/ssh2#dynamic-11-port-forwarding-using-a-socksv5-proxy-using-socksv5-

mohamedchebbii commented 4 years ago

I changed the code, instead of using ssh, I used ssh-promise, and It's working

illegal-instruction commented 4 years ago

@mohamedchebbii That is great. It would be possible for you to share your modified code or create a pull request that could help @WebFreak001 bringing this, if possible, into the extension?

Thanks both of you for your work!