Wireless Debugger v0.11 for DS |
Ó
Here's one homebrew application for the hardcore DS developer - DS Debugger v0.11. As the name says, the app allows developers to interactively debug their applications running on a real Nintendo DS. Created by Simon Hall, the app initialises the network, connects to the PC-side stub and installs the breakpoint-catching code. A function needs to be added to a timer or into a main update loop which polls for commands from the PC-side stub. This picks up commands to add breakpoints or read memory from the PC. Without this function, breakpoints can't be set. On the PC-side stub, a Java application translates the complex commands from the GNU debugger (GDB) into simple operations which the DS stub can execute. The Java stub relays messages from the DS to GDB when things like breakpoints or illegal memory accesses occur.
If you're new to this sort of thing, you really have to go over the readme file. It's a long read but you'd feel better after knowing how the app works. If you already know how it works and you're just rarin' to test the app, here's a list of what it can do:
- suspend the program at user-defined breakpoints
- step individual instructions, assuming the program has paused at a breakpoint
- step whole lines of source code
- inspect memory locations - and assuming a symbol table is present in the original ELF - variables and other structures can be read and their values can be changed
- inspect the state of all registers in the user ARM execution mode - including the program counter, link register, stack pointer and status register
- evaluate all types of ARM branch and condition instructions, allowing you to follow the execution of code properly in most circumstances
- It has a blacklist function, which defines which functions shouldn't be stepped into (when a b/bl/bx instruction is encountered). This is useful to prevent the debugger from stepping inside itself, or functions used by the debugger. If you do step into the debugger, it will probably get into an endless loop and hang.
- It can break on invalid memory access, signalling a SIGBUS message to the host debugger.
- It can break when an invalid instruction is executed - this signals a SIGILL message to the host debugger.
- Both these exceptions destroy the original instruction in memory, so if you read the original opcode back from DS memory you'll get the breakpoint stub opcode instead. To get the real opcode, disassemble the ELF instead. If there's demand for having the real opcode left in memory I'll make the changes required to fix this.
- with minimal work, it ought to be able to co-exist with applications which use sgstair's wireless library
Download: [Wireless Debugger v0.11 for DS]
Via GBA Dev
37 Jumps PSP Homebrew - PSPDisp v0.4
Contact Us:
The QJ.net Network |
|
| Site | Feed |
| QJ.NET | RSS |
| Nintendo DS | RSS |
| PlayStation 3 | RSS |
| PSP Updates | RSS |
| Wii | RSS |
| Xbox 360 | RSS |
| MMORPG | RSS |
| Personal Computer Games | RSS |
| iPhone - iPod Touch | RSS |
| QJ.NET Forums | RSS |
User Favorites - December
User Favorites - December
Categories
Archives
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
Comments [refresh]
PSP RULES
(unlike the DS)