Difference between revisions of "IBugger"

From freemyipod.org
Jump to: navigation, search
m
(16 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 +
{{outdated|reason=Starting August 3, 2010, development of iBugger has stopped in favor of a more useful debugger in [[emCORE]].}}
 
[[File:iBL_greeting.jpg|150px|thumb|right|iBugger Loader]]
 
[[File:iBL_greeting.jpg|150px|thumb|right|iBugger Loader]]
 +
The two iBugger utilities use a Python script that handles USB communication with the iPod.
 
===iBugger Loader===
 
===iBugger Loader===
iBugger Loader is the loader for iBugger, a debugger written by TheSeven. It is a .htm file invoked via the notes exploit. iBugger Loader allows code to be uploaded and data to be dumped through USB. The most recent released version of the iBugger package is located [http://linuxstb.cream.org/nano2g/iBugger-0.1f.tar.gz here]. iBugger Loader can also be used to upload arbitrary unsigned code without space restrictions (besides RAM size), and it removes the hassle of having to boot to disk mode all the time to upload new code.
+
iBugger Loader is the loader for iBugger, a debugger written by TheSeven. It is a .htm file invoked via the notes exploit. iBugger Loader allows code to be uploaded and data to be dumped through USB. The most recent released version of the iBugger package is located [http://theseven.freemyipod.org/download/snapshot-201003100612-public.7z here]. iBugger Loader can also be used to upload arbitrary unsigned code without space restrictions (besides RAM size), and it removes the hassle of having to boot to disk mode all the time to upload new code.
 +
 
 +
You can think of iBugger Loader as a simplified version of iBugger that can fit in a notes file. While it is useful for simple operations, its main purpose is to load the iBugger Core. There are iBugger Loader releases for the 2G and 4G Nanos.
 
===iBugger (Core)===
 
===iBugger (Core)===
 
[[File:iBL_logo.jpg|150px|thumb|right|iBugger]]
 
[[File:iBL_logo.jpg|150px|thumb|right|iBugger]]
Line 10: Line 14:
 
* Dumping the processor's registers
 
* Dumping the processor's registers
 
* Halting the program and showing/modifying registers and/or memory contents
 
* Halting the program and showing/modifying registers and/or memory contents
* Catching prefetch aborts, data aborts, and undefined instruction exceptions, and keeping record of the register contents at the time the abort occurred
+
* Catching prefetch aborts, data aborts and undefined instruction exceptions, and keeping record of the register contents at the time the abort occurred
 
* Debugging console (printf and other functions available to uploaded code, which will print via USB to a console on the attached PC. The client (PC) side is still read-only, but the core would support a bidirectional console. Feel free to add this on the PC side)
 
* Debugging console (printf and other functions available to uploaded code, which will print via USB to a console on the attached PC. The client (PC) side is still read-only, but the core would support a bidirectional console. Feel free to add this on the PC side)
 
* Very little changes needed to the code being debugged, to allow running it in iBugger
 
* Very little changes needed to the code being debugged, to allow running it in iBugger
  
===Rockbox bootloader===
+
There are iBugger releases for the 2G and 4G Nanos.
[[File:Img9088.jpg|150px|thumb|right|2G Rockbox bootloader]]
 
Rockbox developers have started work on porting Rockbox to the Nano2G and it is currently possible to run a Rockbox bootloader (still in a very early state) inside iBugger (picture shown to the right). It is important to understand that this can only be achieved while tethered to a computer. A different way to boot a custom firmware (similar to how it was done on the older iPods) will be researched in the long term.
 

Revision as of 04:27, 9 November 2011

Warning The information and/or topic discussed here is not up to date.

Starting August 3, 2010, development of iBugger has stopped in favor of a more useful debugger in emCORE.

iBugger Loader

The two iBugger utilities use a Python script that handles USB communication with the iPod.

iBugger Loader

iBugger Loader is the loader for iBugger, a debugger written by TheSeven. It is a .htm file invoked via the notes exploit. iBugger Loader allows code to be uploaded and data to be dumped through USB. The most recent released version of the iBugger package is located here. iBugger Loader can also be used to upload arbitrary unsigned code without space restrictions (besides RAM size), and it removes the hassle of having to boot to disk mode all the time to upload new code.

You can think of iBugger Loader as a simplified version of iBugger that can fit in a notes file. While it is useful for simple operations, its main purpose is to load the iBugger Core. There are iBugger Loader releases for the 2G and 4G Nanos.

iBugger (Core)

iBugger

iBugger aims to be a fully-featured debugger on the iPod. It is sent to iBugger Loader via USB. Current features are:

  • Up- and downloading memory regions
  • Executing uploaded code
  • Dumping the processor's registers
  • Halting the program and showing/modifying registers and/or memory contents
  • Catching prefetch aborts, data aborts and undefined instruction exceptions, and keeping record of the register contents at the time the abort occurred
  • Debugging console (printf and other functions available to uploaded code, which will print via USB to a console on the attached PC. The client (PC) side is still read-only, but the core would support a bidirectional console. Feel free to add this on the PC side)
  • Very little changes needed to the code being debugged, to allow running it in iBugger

There are iBugger releases for the 2G and 4G Nanos.