microsoft / microsoft/vscode-cpptools

/ replaced with %2F in the DEBUG CONSOLE

オープン
#11,617 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

debugger help wanted
主要言語
TypeScript
スター
6.2k
フォーク
1.7k
平均マージ
14時間 46分
マージ済み PR(30日)
61

説明

Environment
  • OS and version: 14.1 (23B74)
  • VS Code: Version: 1.84.0
  • C/C++ extension: v1.17.5
  • OS and version of remote machine (if applicable):
  • GDB / LLDB version: The command: /usr/bin/lldb-mi --version exited with code: 127
    [proc] Executing command: /Users/<M.E>/.vscode/extensions/ms-vscode.cpptools-1.17.5-darwin-arm64/debugAdapters/lldb-mi/bin/lldb-mi --version
Bug Summary and Steps to Reproduce

Bug Summary:
A big project can not hit the breakpoints on MacOS arm64; they are grayed out.

So When I comment out all the code and have a simple main function, the breakpoint is red again. I looked at the "DEBUG CONSOLE," and it seems that it shows two issues when the breakpoints are grayed out

  1. The forward slashes "/" for the paths are replaced with "%2F"
  2. The root dir of the file is "git:/" instead of just "/"
Debugger Configurations
{
            "name": "(lldb) Launch",
            "type": "cppdbg",
            "request": "launch",
            // Resolved by CMake Tools:
            "program": "${command:cmake.launchTargetPath}",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [
                {
                    // add the directory where our target was built to the PATHs
                    // it gets resolved by CMake Tools:
                    "name": "PATH",
                    "value": "$PATH:${command:cmake.launchTargetDirectory}"
                },
            ],
            //"externalConsole": true,
            "MIMode": "lldb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "symbolLoadInfo": {
                "loadAll": true,
                "exceptionList": ""
            },
            "targetArchitecture": "arm64",
            "logging": {
                "engineLogging": "verbose",
                "exceptions": true,
                "natvisDiagnostics": "verbose",
                "trace": true,
                "traceResponse": true,
                "moduleLoad": true,
                "programOutput": true
            },
        }
Debugger Logs
<--   C (setBreakpoints-5): {"command":"setBreakpoints","arguments":{"source":{"name":"main.cpp","path":"git:/Users/<M.E>/repo/<PROJ>/<SUBPROJ>/src/<PJ>/main.cpp?%7B%22path%22%3A%22%2FUsers%2F<M.E>%2Frepo%2F<PROJ>%2F<SUBPROJ>%2Fsrc%2F<PJ>%2Fmain.cpp%22%2C%22ref%22%3A%22HEAD%22%7D"},"lines":[60,68,184],"breakpoints":[{"line":60},{"line":68},{"line":184}],"sourceModified":false},"type":"request","seq":5}



<-- C (setBreakpoints-16): {"command":"setBreakpoints","arguments":{"source":{"name":"main.cpp","path":"/Users/<M.E>/repo/<PROJ>/<SUBPROJ>/src/<PJ>/main.cpp","sources":[],"checksums":[]},"lines":[60,413,428,429,62],"breakpoints":[{"line":60},{"line":413},{"line":428},{"line":429},{"line":62}],"sourceModified":false},"type":"request","seq":16}
Other Extensions

CMake Tools v1.15.31

Additional Information

No response

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

デバッガーログ内の setBreakpoints リクエストから始め、エンコードされた git:/ ソースパスと通常のファイルシステムパスを比較します。macOS arm64 上で C/C++ 拡張機能が使用しているソースパス処理を追跡します。ブレークポイントリクエストがパスの区切り文字を保持し、実際のソースファイルに解決されれば、修正は完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cmake, cpp, vscode
領域
devtools
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
30/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。