I have completed the first version of the dbe debugger. I liked the name dbe - "db" is obviously for debug and I just like the final "e". I will claim it stands for education, since its main purpose is to assist in teaching assembly language.
The debugger and the documentation are available at http://rayseyfarth.com/dbe. The index page there is quite plain, but the user documentation is a decent looking LaTeX document converted to html using htlatex.
There are a few nice tweaks added to the first version which I had not considered before-hand. First it is possible to mark a variable name in the source code window and add it to the displayed variables in the data window. The program will determine the address using gdb. Second the user can mark an address in the register window or the data window and easily create user-defined variable with that address. These features will help a lot.
I managed to discover enough gdb commands to find all the memory regions for the programmed being debugged and then scan the .data and .bss sections capturing variable names which are not adequately defined for assembly files. This will make it quite easy to monitor assembly variables.
The debugger is written in Python. So far it has only been tested on my Core i7 computer and it is a little sluggish. I hope that I can live with the Python speed. If I convert it to C++ I will use QT. It will be somewhat easier to rewrite it than it was to learn how to get information from gdb and how to use tkinter and tix to build a GUI.
No comments:
Post a Comment