PDA

View Full Version : Open source debugger for Flash, Flex and AIR



Ferdi Koomen
February 4th, 2009, 04:59 AM
As developers at De Monsters we weren’t totally happy with the current Flash, Flex or AIR debuggers out there. So we decided to create our own debugger called De MonsterDebugger. Today we’ve got a great new version that we want to share with the community for free.


http://demonsterdebugger.com/images/screenshots/homepage.png


De MonsterDebugger started out as an internal tool that helped us with the development of different ActionScript 3 projects. The past several months we’ve been working on a new version of this internal tool. With this new version you can explore your live application, adjust properties and run methods all at runtime. You can trace objects of any type (String, Array, XML or even custom classes) to De MonsterDebugger and it will show the complete structure of that object in an easy-to-read tree structure. De MonsterDebugger is made with Adobe Flex and brought to the desktop with Adobe AIR.

Because De MonsterDebugger isn’t our core business we’re giving it away for free! All the sourcecode is open source available under the GNU General Public license.

Enough talking!
Here’s all the information you need: http://www.demonsterdebugger.com


Ferdi Koomen,
Lead Developer @ De Monsters

substance
February 4th, 2009, 11:55 AM
Wow, this is pretty cool. The ability to edit the swf in real time? Impressive.

I never really got into using the flash debugger (I think you have to use IE?) but this is definitely something worth messing around with.

Maybe put up a video showcasing it's features and how to use it will get people excited about what it can do.

BeerOclock
February 4th, 2009, 12:07 PM
Will this program steal the source code from my flash apps and secretly upload them to a server somewhere for someone else to use and claim as their own?

Just asking ;)

Ferdi Koomen
February 4th, 2009, 12:10 PM
Will this program steal the source code from my flash apps and secretly upload them to a server somewhere for someone else to use and claim as their own?

Just asking ;)

Hahaha NO! But if you wish to check out the client side source code yourself: http://code.google.com/p/monsterdebugger/source/browse/trunk/example/nl/demonsters/debugger/MonsterDebugger.as

Cheers!

BeerOclock
February 4th, 2009, 12:13 PM
Whats this suspicious looking piece of code?!?



childTarget = target + "." + childName;


You guys are targeting children??
Thats it, I'm not downloading it.



jk, trying it out now, will post again soon.

Ferdi Koomen
February 4th, 2009, 12:16 PM
Whats this suspicious looking piece of code?!?

ActionScript Code:

childTarget = target + "." + childName;




You guys are targeting children??
Thats it, I'm not downloading it.



jk, trying it out now, will post again soon.


HAHAHA LOL, hmmm after reading your post we're thinking of a "quotes wall" on De MonsterDebugger page!

McGuffin
February 4th, 2009, 03:23 PM
Really cool, great work.

emtege
February 5th, 2009, 08:24 AM
First of all: Thanks for this great contribution to the community. Looks like we have an appropriate answer to AS2-Xray debugging!

Nevertheless, I experienced some problems when trying to use this tool. I placed the initialisation code as shown on your page in my class and the debugger shows me methods, properties and so on.. BUT all my costum classes I use (for example buttons, textfields, ...) are missing in the list. All containers that are shown are "filters", "loaderInfo", "parent", "root", "soundTransform", "stage", "textSnapshot" and "transform".

Could it have something to do with the complexity of the project I tryed the debugger in? Do you HAVE TO insert the initialisation of the debugger in the absolutely first root class ever used in the application? Is the debugger still working in SWFs loaded into the basic SWF?

Besides this, the detailed tracing will come in handy most definitely. Thanks again!

Ferdi Koomen
February 5th, 2009, 10:35 AM
First of all: Thanks for this great contribution to the community. Looks like we have an appropriate answer to AS2-Xray debugging!

Nevertheless, I experienced some problems when trying to use this tool. I placed the initialisation code as shown on your page in my class and the debugger shows me methods, properties and so on.. BUT all my costum classes I use (for example buttons, textfields, ...) are missing in the list. All containers that are shown are "filters", "loaderInfo", "parent", "root", "soundTransform", "stage", "textSnapshot" and "transform".

Could it have something to do with the complexity of the project I tryed the debugger in? Do you HAVE TO insert the initialisation of the debugger in the absolutely first root class ever used in the application? Is the debugger still working in SWFs loaded into the basic SWF?

Besides this, the detailed tracing will come in handy most definitely. Thanks again!


De MonsterDebugger can only display public properties en methods or a class, could this be causing the problem?

Cheers,

Ferdi

NElizaga
February 5th, 2009, 10:51 AM
This is awesome. Tracing works great, but I can't seem to get any results in Live Application or the Inspector panels. I'm using Flash CS3 and publishing to Flash 9. Are there any extra steps I need to take in order to make that happen (hopefully not to require CS4, as much as I wish we had it here haha :pa: )?

I've been using CIM Logbook (http://code.cimians.com/redmine/projects/show/logbook) for all my tracing/debugging; it has debugging levels and filtering based on objects, etc, but it doesn't have all the fancy features your debugger does!

Thanks, great job!

Ferdi Koomen
February 6th, 2009, 05:10 AM
This is awesome. Tracing works great, but I can't seem to get any results in Live Application or the Inspector panels. I'm using Flash CS3 and publishing to Flash 9. Are there any extra steps I need to take in order to make that happen (hopefully not to require CS4, as much as I wish we had it here haha :pa: )?

I've been using CIM Logbook (http://code.cimians.com/redmine/projects/show/logbook) for all my tracing/debugging; it has debugging levels and filtering based on objects, etc, but it doesn't have all the fancy features your debugger does!

Thanks, great job!

The Live Application and Inspector will only work if you run your move straight from the Flash IDE or on a server (live or localdomain) Due to the security sandbox of Flash's LocalConnection. Could this solve your problem?

Cheers

NElizaga
February 6th, 2009, 09:51 AM
The Live Application and Inspector will only work if you run your move straight from the Flash IDE or on a server (live or localdomain) Due to the security sandbox of Flash's LocalConnection. Could this solve your problem?

Cheers


I tried that, but Flash is being a jerk :( Still no Live Application. Am I missing something?

I'm just importing the debugger class, and then tracing one line to test it. Thanks for your help!

Ferdi Koomen
February 6th, 2009, 10:39 AM
I tried that, but Flash is being a jerk :( Still no Live Application. Am I missing something?

I'm just importing the debugger class, and then tracing one line to test it. Thanks for your help!

Follow these steps:

#1. Import the MonsterDebugger classes
import nl.demonsters.debugger.MonsterDebugger

#2. Define a private property
private var debugger:MonsterDebugger;

#3. Initialize the debugger in your document class constructor
debugger = new MonsterDebugger(this);

#4. Send a trace (optional)
MonsterDebugger.trace(this, "Hello World!")

You can find a code example here:
http://demonsterdebugger.com/features/howitworks

NElizaga
February 6th, 2009, 11:47 AM
Follow these steps:

#1. Import the MonsterDebugger classes
import nl.demonsters.debugger.MonsterDebugger

#2. Define a private property
private var debugger:MonsterDebugger;

#3. Initialize the debugger in your document class constructor
debugger = new MonsterDebugger(this);

#4. Send a trace (optional)
MonsterDebugger.trace(this, "Hello World!")

You can find a code example here:
http://demonsterdebugger.com/features/howitworks

Awesome! That was one of those situations where I swear I looked through all the pages for a solution, but apparently didn't :) Thanks again