Inspect
Pinpoint an element in a webpage with ease and precision.
Log
Send messages to the console direct from your webpage through Javascript.
Profile
Measure your Javascript performance in the Console's Profiler.
Debug
Step-by-step interactive debugging in a visual environment.
Analyze
Look at detailed measurements of your site's network activity.
Layout
Tweak and position HTML elements with CSS and the Layout panels.

Recent news

Firebug 2.0 beta 1

getfirebug.com has Firebug 2.0 beta 1

Firebug 2.0b1 fixes 13 issues
Firebug 2.0b1 is compatible with Firefox 30-31

 

The feedback we have got for Firebug 2 so far has been positive, some issues reported and fixed. We feel strong and in order to get more feedback we decided to move forward and start beta phase. Beta releases will also be uploaded on AMO to update the beta channel.

Highlights from this release

One little improvement made it into this release. If you deal with Cookies you can now export all cookies for the current page using new Export as JSON to Clipboard action (issue 7197).

In order to have this action available you need to set the following preference to true: extensions.firebug.cookies.jsonClipboardExport
(use about:config)

 


 

One useful concept improved in Firebug 2 is related to JavaScript errors and the debugger. Thanks to JSD2 API Firebug could finally implement it correctly. So, let’s take a look at four scenarios that explains how you can identify JS errors in your code and fix it.

Break On Next Error

This feature is part of Break On … concept in Firebug. This time we are interested in Break On Next Error related to the Console panel.

This features allows to break on an error that happens next. It’s useful in cases where the user knows when the error happens.

The use case is (try live example):

  • Open Firebug and enable the Console and Script panel
  • Switch to the Console panel and click Break On All Errors
  • Operate your page to cause JS error
  • Firebug should switch to the Script panel and break in the debugger
    at the line where the error happened

Error Breakpoint

In this case Firebug integrates JS errors an breakpoints within the Console panel.

This features allows to break on particular error that the user created a breakpoint for.

The use case is (try live example):

  • Open Firebug and enable the Console and Script panel
  • Operate your page to cause an error
  • You should see an error log in the Console panel allowing to set a breakpoint on it
  • Operate your page to cause the same error
  • Firebug should switch to the Script panel and break in the debugger
    at the line where the error happened

Break On Exceptions

In this case we move into the Script panel and use one of its options.

This feature allows to break on any exception that happens in your app. It works as an option and you don’t need to reactivate it after it happens.

The use case is (try live example):

  • Open Firebug and enable the Script panel
  • Switch to the Script panel and check Break On Exceptions option in the panel tab options menu
  • Operate your page to cause an exception
  • Firebug should switch to the Script panel and break in the debugger
    at the line where the error happened

Ignore Caught Exceptions

This case is an extension of the previous one. In some cases the user is only interested in uncaught exceptions since the others are caught and known.

This features allows to break on any exception that happens and is *not* caught by catch clause. It works as an option you don’t need to reactivate it.

The use case is (try live example):

  • Open Firebug and enable the Script panel
  • Switch to the Script panel and check Break On Exceptions and Ignore Caught Exceptions option in the panel tab options menu
  • Operate your page to cause uncaught exception
  • Firebug should switch to the Script panel and break in the debugger
    at the line where the error happened

Please post feedback in the newsgroup, thanks.

Jan ‘Honza’ Odvarko

 

Firebug 1.12.8

The Firebug team released Firebug 1.12.8. This version represents a maintenance release fixing compatibility issues with upcoming Firefox versions.

 

Firebug 1.12.8b1 has also been released to update users on AMO beta channel. This version is exactly the same as 1.12.8.

 

Firebug 1.12.8 is compatible with Firefox 23 – 30

Firebug 1.12.8 fixes 2 issues.

 

JSD1 vs. JSD2

This release is solving a compatibility problem related to the JavaScript Debugger Engine API (JSD) in Firefox. This API is going to be removed from Firefox 31 and any extension that is using it (including Firebug) needs to switch to JSD2 that has been around for a while.

The JavaScript debugger in Firebug 1.12.8 is based on the (old) JSD API, so the Script panel will be disabled if you’re running this Firebug version on Firefox 31.

The Script panel displays a message explaining why it’s disabled and a link to the Firebug 2 page. Firebug 2.0 is fully based on JSD2. Firebug 2.0 requires Firefox 30 as the minimum version and all users running it should check it out. Even when Firebug 2.0 is not finished yet, it’s already quite stable.

 

Here is a quick compatibility table:

  • Firefox 23-30 with Firebug 1.12.8
  • Firefox 30+ with Firebug 2.0 beta 1

Please post feedback in the newsgroup, thanks.

Jan ‘Honza’ Odvarko

 

Firebug 2.0 alpha 2

getfirebug.com has Firebug 2.0 alpha 2

Firebug 2.0a2 fixes 20 issues
Firebug 2.0a2 is compatible with Firefox 30-31

 

The Firebug team is hardworking to make sure version 2.0 is ready when Firefox 30 is ready. Today’s alpha 2 is fixing reported issues and also finishing some features that have been in-progress for some time. We are planning to switch to beta phase soon to get yet more feedback.

Inspect JavaScript Function Return Value

issue 6857

 

This is a great feature that allows to examine and modify the return value of a JavaScript function. See this little example:

function myFunction()
{
    return foo();
}

 

The question is how to examine the return value of foo()? Firebug allows that by stepping through a return statement and displays it within the Watch side panel. It even allows you to modify the return value by double-clicking on it.

 

Let’s go through an example (available online) and see some screenshots describing the user experience.

The JS execution is halted at line 17 and the Watch panel shows some global scopes, but it isn’t clear what the return value is.

One of the new JSD2 features is stepping through the return statement, so if you step over once (F10), the debugger will sit at the same executable line (17), but the current return value will be available and displayed in the Watch panel at this time.

Now you can edit the return value (double clicking on number 100) just like any other variable in the Watch panel. You can even change the type to make the value a string or a JS object. Try it for yourself, install Firebug 2 alpha 2 and load the online test case.

 

Pretty Print

issue 6920 and 1238

 

Another nice feature introduced for the first time is source code prettifying. This feature is available for the Command Editor:

as well as the Script panel source:

 

 

We’d love to hear about how this version works for you.

 

Please post feedback in the newsgroup.

 

Jan ‘Honza’ Odvarko

 

Read more blog posts on the Firebug weblog »