今月の中頃にリリースされた GDB 7.5 だけれど、早速 Quantal Quetza (12.10) 版をインストールしてみた。で、その NEWS ファイルの一部には:
*** Changes in GDB 7.5
* GDB now supports x32 ABI. Visit <http://sites.google.com/site/x32abi/> for more x32 ABI info. * GDB now supports access to MIPS DSP registers on Linux targets. * GDB now supports debugging microMIPS binaries. * The "info os" command on GNU/Linux can now display information on several new classes of objects managed by the operating system: (省略) * GDB now has support for SDT (Static Defined Tracing) probes. (省略) * GDB now supports reversible debugging on ARM, (省略) * Python scripting (省略)
“Python scripting” なんて粋な機能が付いているのを発見 (あとで気づいたのだけれど Python サポートは GDB 7.0 からなのね)。
で、実際に起動して確認してみた。まずは help を見てみる:
$ gdb GNU gdb (GDB) 7.5-ubuntu Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. (gdb) (gdb) help python Evaluate a Python command.
The command can be given as an argument, for instance:
python print 23
If no argument is given, the following lines are read and used as the Python commands. Type a line containing "end" to indicate the end of the command. (gdb)
これによると、python というコマンドに続けてスクリプトを記述するか、あるいは python のあとでリターンすると複数行のスクリプトを記述でき、end で締めくくると解釈されるようだ。
何回かのアップグレードでかなり機能が改善されているようなので、GTK+ のウィンドウでも create してみるかと:
(gdb) python >from gi.repository import Gtk > >win = Gtk.Window() >win.connect("delete-event", Gtk.main_quit) >win.show_all() >Gtk.main() >end
全くもって問題なく GtkWindow を一つリアライズできた 。
すごい。何の役に立つか分からんけど。