Syndicate the Cosmos Blog Feed.

GDB Debugger

Hopefully most Cosmos users will never need to use our low level debugger, but its a life saver for those of us working on the compiler. It will also be useful for some developers developing deep core conepts such as memory management, threading, and interrupts.

Why not use DDD, etc?

First, we did look at DDD, IDA and others. DDD however runs only on Linux. While we like Linux, our development environment is Windows.

Second, we wanted a GDB front end that only dealt wtih assembly and not higher level source. While many of them can do assembly, they don't exclude and often rely on source mappings for some assembly level functions which causes problems for our debugging.

Thirdly, we wanted a debugger which could automate many of the Cosmos specific debugging tasks. Some of the front ends were scriptable, but it turned out to be more work than it was worth to achieve what we needed.

Cosmos GDB Debugger

For now it is a standalone application written in C#. We may integrate it into Visual Studio later, but since it is only used by a few users and does not rely on C# or other Visual Studio functions there really is little need to do so as we have done with our source level debugger.

Since there is a lack of assembly specific GDB clients, and very few that run on Windows (especially without the problematic cygwin), we may make it more generic and release it at a later date as a separate application.

You cannot see the menus in this screenshot, but it does support step in, step over, and continue. We are now in the process of adding breakpoints, watches and more. Such functions can be handled currently by using the send command option on the Debug Log tab.


Comments:

-- No Comments --

Post a comment