メモの日々


2023年06月23日(金) [長年日記]

[windows][c++] Pythonから呼び出すDLLをVisual Studioのデバッガでデバッグする

pybind11を使ってC++で書かれたPython用のDLLのコードを、Visual Studio 2019のデバッガで開きたかった。

Visual Studioの [デバッグ] → [プロセスにアタッチ] で開くダイアログからPythonのプロセスにアタッチすればいいだろうと考えたが、DLLのコードにブレークポイントを設定してもそこで止まってくれない。

原因は、アタッチした時にPython用のデバッガが開いてしまっているからのようだ。「プロセスにアタッチ」ダイアログには「アタッチ先」という欄があって「自動」が選ばれていたが、「選択」ボタンで開く「コードの種類の選択」ダイアログで「ネイティブ」を選択したらDLLのコードのブレークポイントで止まるようになった。

Python用のデバッガが開いてしまうのはVisual Studioに「Python開発」のワークロードをインストールしているからな気がする。これが無い環境なら何も設定しなくてもC++用のデバッガが開くのかもしれない。

プロセスにアタッチダイアログ