質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

0回答

1629閲覧

VSCodeの踏み台環境を経由したデバッグ方法

kitsunesan

総合スコア8

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/12/02 11:01

実行環境が踏み台環境の先にあり、VisualStudioCodeでアタッチしてデバッグを行いたいと考えています。
その際のlaunch.jsonのpipeTransportの記載方法がわからず、接続までできません。

(環境)
[操作PC]→[踏み台サーバ]→[デバッグ環境]

[コンパイル環境]

操作PC:Windows
踏み台サーバ:Windows、IPアドレス:aaa.aaa.aaa.aaa
デバッグ環境:Linux、IPアドレス:bbb.bbb.bbb.bbb
コンパイル環境:Linux、操作PCからのssh接続済み

開発言語はC++
コンパイル環境からデバッグ環境へ接続したいと考えています。

以下、コンパイル環境のlaunch.jsonで試した内容です。

{ "version": "0.2.0", "configurations": [ { "name": "(Linux to Linux gdb) Pipe attach", "type": "cppdbg", "request": "attach", "program": "/home/debug/hello-world", "processId": "10001", "pipeTransport": { "debuggerPath": "sudo/usr/bin/gdb", "pipeProgram": "/usr/bin/ssh", "pipeArgs": [ "-o", "ProxyCommand='ssh -W %h:%p bastion@aaa.aaa.aaa.aaa'", "debug@bbb.bbb.bbb.bbb" ], "pipeCwd": "" }, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] }, ] }

書籍やサイトを探しましたが、どれも芳しい結果ではありませんでした。
解決策をご教示いただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kitsunesan

2021/12/02 12:20

ありがとうございます。 RemoteDevelopはすでに実現できています。 既存のgdbだとCUIであり使いにくいと思ったため、VSCodeを用いた(GUIでの)デバッグの方法はないかと探しています。
yumetodo

2021/12/02 13:06

であればgdbは最終的なサーバーで動くので、単にローカルで動かすときと同じ設定なのではと推測するんですが
Crimson_Tide

2021/12/02 13:14

ご覧になっているかもしれませんが、 下記サイトに debug to remote machine (Mac/Linux to Linux) という項目でlaunch.jsonのサンプルがありました。 https://vscode-debug-specs.github.io/cpp/ 記載内容に責任を持てませんが、解決の一助になれば幸いです。
kitsunesan

2021/12/04 09:57

> yumetodo ご提案ありがとうございます デバッグ環境にssh接続、ソースを配置してアタッチを行いましたが、異なるエラーが発生しました 以下、実験した内容と結果です。 launch.jsonの内、pipeArgsのみ "debug@bbb.bbb.bbb.bbb"に変更 → エラー:Host key verification failed. launch.jsonの内、pipeArgsのみ "debug@localhost"に変更 → エラー:Host key verification failed. launch.jsonの内、pipeArgsの記載を空に変更 → エラー:Pseudo-terminal will not be allocated because stdin is not a terminal. ssh: Could not resolbe hostname sudo /usr/bin/gdb --interpreter=mi: Name or servive not known pipeArgsが空ではダメみたいですが、自分に繋ぎに行ってるのにホストキーを要求されるのも…こちらも手詰まりになっています… >Crimson_Tide ご提案ありがとうございます。 URL確認しましたが、今回の問題を解決できそうなヒントはありませんでした。
yumetodo

2021/12/09 13:43

あくまでデバッガーの拡張機能は当該サーバー上で動作する認識だったのですが・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問