dbgeeを使った気軽なデバッグ

これが欲しかったんだよ!と膝を叩きたくなるツールが公開されていました。

背景

普段プログラミングするときは、コマンドラインで完結するのが好きで、基本的にzshとneovimを使っているのですが、デバッグする際に使用するGDBに苦手意識があり、できればGUIでデバッグしたいという気持ちがありました(コマンドを覚えるのが面倒なので)。
近年では、VSCodeというMS製の拡張性に優れた素晴らしいテキストエディタにはデバッガ連携機能もあるので、これを使ってデバッグをしたいのですが、こんどはプロジェクトごとに設定ファイル(launch.json)を作成する必要があり、大きなプロジェクトならともかく、やっぱり気軽さに書ける感じがしてモヤモヤしていました。
そんな中で偶然Twitterで見かけたツールがdbgeeでした。
これは、コマンドラインで実行したプロセスに簡単にデバッガでattachすることのできるツールでして、
  • デバッグ用の設定ファイルが不要(vscodeのlaunch.jsonみたいな)
  • 引数や標準入出力の設定が簡単
という特徴があります。
個人的に役に立ちそうだと思ったユースケースとしては、
  • 競プロのように標準入力のリダイレクトを多用する事例(通常gdbの場合、gdbrun < in_1.txtみたいに2コマンド必要なのに対し、1コマンドで完結する)
  • 書き殴りのテストコードをさくっとVSCodeでデバッグしたくなった場合
でしょうか。正確な説明は本家におまかせするとして、試してみたときにちょっとだけ詰まったポイントがあったので、ここで共有しておきます。

詰まったポイント

c++のプログラムにattachできない

起動したプロセスにattachする際にpermissionがなくて失敗する問題があった。 原因としては、Ubuntu環境ではデフォルトでリモートプロセスにattachできない設定らしい。 解決としては、このサイトが参考になった。 linux – gdbのattachについて – スタック・オーバーフロー
sudo su
# 一時的に設定したい場合
echo 0 >| /proc/sys/kernel/yama/ptrace_scope
# 恒久的に設定したい場合
# /etc/sysctl.d/10-ptrace.conf の最終行をkernel.yama.ptrace_scope = 1に設定

pythonのプログラムにattachできない(未解決)

原因は不明だが、shebang(最初の行)の書き方で、できたりできなかったり できる #!/usr/bin/env python3 できない #!/usr/bin/python3

参考

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です