User:GijsKruitbosch/JS Debugging: Difference between revisions

Jump to navigation Jump to search
no edit summary
(Linking profiling stuff)
No edit summary
Line 29: Line 29:


== Things I don't like about Firebug 0.4 ==
== Things I don't like about Firebug 0.4 ==
* It doesn't disable the window you're debugging (it's probably impossible to do that properly, but it seems like this is a Bad Thing). It does seem to disable the scripts in some way, which means it's not /that/ easy to make it screw up.
# It doesn't disable the window you're debugging (it's probably impossible to do that properly, but it seems like this is a Bad Thing). It does seem to disable the scripts in some way, which means it's not /that/ easy to make it screw up.
* I can't get a list of breakpoints.
# I can't get a list of breakpoints.
* I need to switch to a different firebug tab to evaluate js / change a variable's value.
# I need to switch to a different firebug tab to evaluate js / change a variable's value.
* The stack is done in a dropdown box. While this saves debugger real-estate, it's not as easy to keep track of the stack while you step through your code.
# The stack is done in a dropdown box. While this saves debugger real-estate, it's not as easy to keep track of the stack while you step through your code.
* I can't set watches.
# I can't set watches.
* The variable/value tree is done in HTML, which has the advantage of making it look neat, and the disadvantage of being prone to breakage when you resize elements inside firebug or when the value of some variable becomes too large. Specifically, names of variables get thrown onto another line than the > tree thing.
# The variable/value tree is done in HTML, which has the advantage of making it look neat, and the disadvantage of being prone to breakage when you resize elements inside firebug or when the value of some variable becomes too large. Specifically, names of variables get thrown onto another line than the > tree thing.
* The variable/value tree doesn't seem to indicate newlines inside the values in any way.
# The variable/value tree doesn't seem to indicate newlines inside the values in any way.
* Switching firebug tabs to/from the debugger is horrifically slow. At the moment I don't know what it's doing, but it seems bad.
# Switching firebug tabs to/from the debugger is horrifically slow. At the moment I don't know what it's doing, but it seems bad.
* If you open two pages with the same script running, set a breakpoint in one tab, break in that, switch to the other tab, open firebug, it will have the breakpoint, but it won't break on it. This is weird.
# If you open two pages with the same script running, set a breakpoint in one tab, break in that, switch to the other tab, open firebug, it will have the breakpoint, but it won't break on it. This is weird.
* It seems to remember breakpoints, but if you close a tab which used to have a breakpoint in it, go to the same page again, it'll break on load, for some reason, but not show the stopped script and just sit their waiting for you. Hitting the 'run' button will then make it load the rest of the page, after which it stopped again, but this time the 'run/break' button was still on 'break' (hitting it twice, again, gives you back normal behaviour). This is weird.
# It seems to remember breakpoints, but if you close a tab which used to have a breakpoint in it, go to the same page again, it'll break on load, for some reason, but not show the stopped script and just sit their waiting for you. Hitting the 'run' button will then make it load the rest of the page, after which it stopped again, but this time the 'run/break' button was still on 'break' (hitting it twice, again, gives you back normal behaviour). This is weird.
* I crashed it on gmail, and hung it on it when trying to reproduce. TB19037069H, TB19039966X
# I crashed it on gmail, and hung it on it when trying to reproduce. TB19037069H, TB19039966X
* The run/break UI is kinda broken on about:blank. Firebug doesn't seem to like about:blank in general, I've seen it freak out on that in weird ways before (as in, spawn limitless amounts of error messages into the console). Can't seem to reproduce that anymore (yay!).
# The run/break UI is kinda broken on about:blank. Firebug doesn't seem to like about:blank in general, I've seen it freak out on that in weird ways before (as in, spawn limitless amounts of error messages into the console). Can't seem to reproduce that anymore (yay!).
* The 'disable firebug' pref is royally broken. The debugger and everything else doesn't seem to care about it anymore.
# The 'disable firebug' pref is royally broken. The debugger and everything else doesn't seem to care about it anymore.
* Where's my pretty-print?
# Where's my pretty-print?


== Possible solutions for some of the problems listed above ==
== Possible solutions for some of the problems listed above ==
* Integrate watches and variable listings in one pane. This still offers the same functionality, while removing complexity and saving screen real-estate. Possibly have an option not to show variables by default, so you can use watches only, making a script with lots of variables easier to debug in a more focused way.
# Integrate watches and variable listings in one pane. This still offers the same functionality, while removing complexity and saving screen real-estate. Possibly have an option not to show variables by default, so you can use watches only, making a script with lots of variables easier to debug in a more focused way.
* Put the scripts and windows lists inside a sidebar-like pane that you can pop in and out, saving lots of real-estate - after all you tend to not need these while debugging. It should be easier to remove/add them whenever you want.
# Put the scripts and windows lists inside a sidebar-like pane that you can pop in and out, saving lots of real-estate - after all you tend to not need these while debugging. It should be easier to remove/add them whenever you want.
* Try if you can disable the window within the tab and not everything else... not quite sure whether you can, or maybe could with some JS backend fixes...
# Try if you can disable the window within the tab and not everything else... not quite sure whether you can, or maybe could with some JS backend fixes...


== Profiling ==
== Profiling ==
'''[[User:GijsKruitbosch/JS Debugging/Profiling|Profiling]]'''
'''[[User:GijsKruitbosch/JS Debugging/Profiling|Profiling]]'''
Confirmed users
293

edits

Navigation menu