Updated JimDB

At the mobile team meet-up two weeks ago I demonstrated some of the newer features in JimDB, the GDB package used for Fennec development. This past week I pushed out these new changes, and also updated the wiki page, which includes (or will include) all instructions and documentation. You should check it out if you ever need to use GDB to debug Fennec!

JimDB main prompt

Some of the changes since my last blog post include,

  • Support for launching Fennec with environment variables and arguments
  • Support for debugging Mochitests.
    • You can now debug a single test, a whole directory, or use TEST_PATH like before (thanks :jwatt!)
    • Environment variables are supported.
    • Because XRE is needed for running Mochitests, JimDB can automatically download and manage a copy of XRE for you.
  • Experimental Java debugger (JDB) integration.
    • Now you can choose the “Debug using jdb” option to debug Fennec Java code (see the jdb doc page for a quick JDB tutorial; so far at least the print and stop commands work).
    • Or you can launch two JimDB instances to debug C++ and Java simultaneously.
  • Miscellaneous improvements
    • A dump-pseudo-stack command to print the profiler stack (thanks :kats!)
    • Detection of mismatch between objdir version and installed version on device
    • Detection of device changes - now new libraries will be downloaded when the device has a new ROM
    • Automatic update
    • Better way to change settings through gdbinit.local
    • Working tab completion on OS X
    • Fixed a bug where breakpoints with conditions can cause crashes (thanks :jwatt!)
    • Fixed a bug where calling functions from JimDB can cause crashes

With these improvements, give the new JimDB a try! Let me know if you run into issues. You can always find me as jchen in #mobile on IRC. There is also a JimDB component on Bugzilla under Firefox for Android.

Next up, I have some possible new features for the next release

  • Robocop debugging support
  • Reftest debugging support
  • Web app debugging support
  • Support for debugging in ${your_favorite_editor}

Let me know if any of these features would help you!