microsoft / microsoft/vscode-cpptools

GDB Showing Dead Threads?

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

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

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

説明

Environment
  • OS and version: Ubuntu 20.04.6 LTS
  • VS Code: 1.98.2
  • C/C++ extension: 1.23.6
  • OS and version of remote machine (if applicable): Ubuntu 20.04.6 LTS within Docker Container
  • GDB / LLDB version: GDB 9.2
Bug Summary and Steps to Reproduce

Bug Summary:
I am trying to get debugging with GDB going but am having issues. Everything launches fine and otherwise works. Breakpoints stop the thread (program hangs) but VSCode does not update to show the program is stopped, does not list variables, etc. Basically acts as if it didn't see the breakpoint get hit.

While trying to figure this out, I noticed that the one thing it does show, the threads, is incorrect. After breaking the debugger and using the debugger console, I see this:
-exec info inferiors
Num Description Executable

  • 1 process 121733 /var/pyEnv/bin/python

One process, as expected. However in my side bar:

Image

This list goes down. There are maybe 50 or 60. VSCode thinks these are running threads but they are not. When running they all say running, when stopped they all say stopped. These threads do not exist. Perhaps this is confusing VSCode as to which "thread" it should be listening to?

When I do gdb manually on the command line, it works fine. I can set a breakpoint and have it stop there, view variables, etc. Just seems like VSCode is getting its wires crossed.

Any advice or workarounds?

Steps to reproduce:

  1. In this environment: debug a python "script" (I am trying to debug C code called by python)
  2. With this config: Launch GDB with python
  3. Do: Launch debugger
  4. See error: VSCode doesn't really let me debug. Seems to think there are a lot of threads that don't exist
Debugger Configurations
{
            "name": "Debug Extension",
            "type": "cppdbg",
            "request": "launch",
            "program": "/var/pyEnv/bin/python",
            "args": ["someScript.py", "-a", "-b"],
            "MIMode": "gdb",
            "cwd": "${workspaceFolder}",
            "miDebuggerPath": "/usr/bin/gdb"
        }
Debugger Logs
I am trying to get debug logs but there is so much text that it seems to hang VSCode
Other Extensions

No response

Additional Information

No response

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

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

はじめの一歩

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

調査の方向性

提供された cppdbg 起動構成、Python スクリプト、Ubuntu Docker 環境、および GDB 9.2 を使って問題を再現します。デバッガー コンソールの -exec info inferiors の出力と VS Code のスレッド一覧を比較し、利用可能なデバッガー ログを使って、ブレークポイントで停止したときに変数や実行状態が更新されない理由を特定します。スレッド一覧が実際のプロセスを反映し、ブレークポイントでの停止がコマンドラインの GDB と同じように動作すれば完了です。

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

評価

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

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

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