Windows 環境で GDB 起動時に .gdbinit ファイルが読込めない場合の対処法

Windwos 環境にて c 言語のソースコードを GCC でコンパイルして GDB でデバッグをしようとした際に、.gdbinit の自動読込が拒否されて意図したようにデバッグができない問題に遭遇した。

コンソールに表示されたメッセージの通りに対処しても問題を解決できなかったが、最終的に、それと同時に環境変数を追加することで解決できた。

状況

ソースコードがある作業フォルダ内に .gdbinit ファイルを置いて GDB を起動した時に、.gdbinit の自動読込が拒否されてしまった。

コンソールには次のようなメッセージが表示されていた。(**** は実際のファイルパス)

.gdbinit の自動読込に関するメッセージ
1.
2.
3.
4.
5.
6.
7.
warning: File "****.\gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
To enable execution of this file add
        add-auto-load-safe-path ****\.gdbinit
line to your configuration file "$HOME/.gdbinit".
To completely disable this security protection add
        set auto-load safe-path /
line to your configuration file "$HOME\.gdbinit".
  

対処

1. HOME に .gdbinit ファイルを配置

HOME が指し示すフォルダ内に .gdbinit ファイルを作り、メッセージにある通りの行を記述する。
HOME は C:\Users\username のことらしく、ここに .gdbinit ファイルを作る。username の部分の文字列は環境ごとに異なるので注意。

作った .gdbinit ファイルに記述する内容は
add-auto-load-safe-path ****\.gdbinit
あるいは
set auto-load safe-path /

ネットで調べて出てきた情報は大体がこれで OK のようだったが、自分の環境ではこれだけではダメだった。そのような場合は 2. の対処も実施する。

2. HOME を環境変数に追加

HOME という環境変数を追加する。

Windows マークのボタン(いわゆるスタートボタン)の横にある検索窓に「環境変数」と入力して「システム環境変数の編集」を選択、システムのプロパティ画面が開くので「環境変数」ボタンを押す。(環境変数の設定画面を開く方法は複数ある。ここに書いた手順はあくまで一例)

ユーザー環境変数の「新規」ボタンを押して新たな環境変数を作成する。username の部分の文字列は環境ごとに異なるので注意。

変数名
HOME
変数値
C:\Users\username

必要に応じて PC を再起動。

参考

Where to put .gdbinit in Windows?

0 件のコメント:

コメントを投稿