micro-debug is a debugger for the Mic-1 processor invented by Andrew S. Tannenbaum, Structured Computer Organization, Fourth Edition (Prentice-Hall, 1998). You can debug the assembler code and the micro assembler code, too.
This debugger has been developed for a seminar paper. The seminar paper is stored in croesch/micro-debug-doc.
The debugger runs on Java, so you don't need to have a specific platform. You just need at least Java 5 to run it.
This section describes how to install the debugger from released .zip-files. For developer instructions see further sections.
- Extract .zip-file
- The debugger doesn't need installation, it is now ready to be executed, for example on linux do the following steps:
- open command line
- change into directory
$ cd micro-debug-version/
- execute start script
$ ./micro-debug.sh --help
For any details you can run the debugger with the argument
--help. To simply debug an assembler file using a specific micro assembler implementation, run
$ ./micro-debug.sh path-to-micro-assembler.mic1 path-to-assembler.ijvm
where the first argument is the relative or absolute path to the micro assembler byte code and the second argument is the relative or absolute path to the assembler byte code.
For specific syntax and available commands use the command
HELP when the debugger is running and asking for your input (with
Also the micro processor could need some input, to determine who is requesting input from you, the processor prints the line
In the directory
config there are several files that can be used to configure behavior of the debugger.
You can use the file
micro-debug.properties to change some default values like the size of the memory or the start values of the registers.
logging.properties contains the configuration for the Java logger that is used when executing the debugger via start script. Please see documentation of
java.util.logging for details.
Since the directory
config is placed in classpath upon the debuggers jar-file, you can override files by simply adding them into the
The debugger uses an
ijvm.conf file to disassemble assembler code, this file is packaged in the jar-file.
So if you want to use your own
ijvm.conf file then just put it into the
config directory and restart the debugger.
The debugger uses xml-files to display any text to the user (except logging output). These files are located in the directory
The debugger scans four files when you are running it:
langis the language,
CTthe country code and
var1the variant, all provided by the default locale of your JVM. This file is read first (if it exists). Any keys not found in this file will be searched in the following three files.
text.xml, the basic file for internationalisation. If any key is not found in a specific file or the files don't exist, than it will be searched in this file. So it is an important basis.
If you want to translate (or add translation to the debugger), just add the files named as shown above to the directory
config/lang/ and restart the debugger. It should automatically use the new files, if they are more specific (regarding to the list above) than the existing ones and contain language, country and variation of the used locale.
If you find a mistake in existing translation or translate the existing files to your language, please let us know and it would be a pleasure to add your contribution to the project!
Although this project has been developed in a seminar paper it is now open for your contributions. There are several ways how you can contribute:
- you can translate the translation files to your language (as described above)
- you can test the debugger and open some bugs and/or feature requests in the issue tracking system
- you can fix a bug and contribute your changes
- you can just let us know that you're using the debugger and describe your experience using it
You have found a bug? Or have any suggestions how to improve the debugger? Then please create an issue here on GitHub!
Once you forked the repository and checked out a local copy you can use maven to build the project and run the tests:
$ mvn clean packageto compile, test and package the project
$ mvn testto compile and run the tests
You can now change behavior add tests and test your changes. After you successfully developed on a feature, you can push your changes to your public repository and make a pull request.
Please develop in feature branches! Please see help on GitHub for how to do that.
Copyright and licensing
Copyright © 2011-2012 Christian Rösch; Copyright © 1999 Prentice-Hall, Inc.
christianroesch:: at ::gmx.net
rayo:: at ::ontko.com
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.