0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

rr を Visual Studio Code(vscode) から使う設定

Last updated at Posted at 2021-09-03

はじめに

rr は非常にパワフルなデバッグツールだがコマンドラインで使うと素のgdbと同じくかなり使いづらい
そこで rrvscode から利用する設定を行う
具体的的には rrvscode を接続する設定をすれば良い

rr を vscode から利用する設定

launch.json 設定ファイルをの作成

  1. vscodeを立ち上げる
  2. vscodeでソースコードを保存しているディレクトリを開く
  3. Ctrl+Shift+D でDebug viewを開いて launch.json 作成を選択
  4. 下記の設定をlaunch.jsonに追加する

設定ファイル

Firefoxのデバッグ用の設定を参考にする

  • rr を起動するときに localhost:50505 をデバッグポートとして起動して vscode からの接続を待つ
  • vscodeF5 でデバッグ起動すると localhost:50505 へ接続して rr を使ってデバッグ
  • program 等は環境に合わせて修正
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": "rr",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/a.out",
            "args": [],
            "miDebuggerServerAddress": "localhost:50505",
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": true,
            "linux": {
                "MIMode": "gdb",
                "setupCommands": [
                  {
                      "description": "Setup to resolve symbols",
                      "text": "set sysroot /",
                      "ignoreFailures": false
                  }
                ]
              },
              "osx": {
                "MIMode": "gdb"
              },
              "windows": {
                "MIMode": "gdb"
              }
        }
    ]
}

vscodeを使ってデバッグする

rr record <実行ファイル> で実行し、 replayでデバッグ開始

$ rr record ./a.out
$ rr replay -s 50505 -k

vscode でデバッグしたいファイルを開いて F5
rr に接続してデバッグを開始する

残念ながらvscodeのGUIにリバーズ実行のためのボタンが用意されていない
スクリーンショット 2021-09-01 18.25.23.png
リバース実行したい場合は Debugger Console でコマンド入力が必要
-exec reverse-continue (-exec rc), -exec reverse-step (-exec rs)など

rr の使い方

rr のようなツール

#関連記事

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?