Generally: yes, you should be able to debug coffee-script directly with bugger. But... it's broken in the current beta. The biggest issue is Chrome not liking that the compiled file and the source file have the same filename. I tried different ways to work around it, but the current solution (patching the source filenames by appending ".src") breaks in some interesting ways. Will maybe have to revert to one of the previous solutions.
TL;DR: It's broken in the current beta, not your fault. Cheers, Jan Krems P.S.: A colleague showed me the debugging support in WebStorm today, they support step-by-step coffee-script debugging by now. It's cumbersome because you have to start the app and the debugger separately (one of the things I always hated about node-inspector) and you are forced into big-IDE-land, but it seemed somewhat stable and working quite nicely. Just as a FYI. P.P.S.: I hope I will find some time this weekend to get the next beta out. Fingers crossed that I also get a fix for coffee-script debugging in. P.P.P.S.: Since apparently some people are reading these mails: My biggest wish in the whole wide world would be to have some proper integration tests for bugger but I can't get the devtools-url to open in chrome via automation (e.g. webdriver/wire). I suspect it to be some security-policy, though I feel like it shouldn't be a security issue. Does anyone have an idea how to trick chrome into opening these kind of urls? It's also blocking them when I try to open them via CLI params. On Friday, July 12, 2013 at 7:00 PM, David Beck wrote: > Wow.. bugger looks awesome! I love how you can use Chrome's command-shift-O > to get a list of the functions in the current file. Always missed that with > node-inspector. > > Does the support for coffeescript source maps mean that you can actually > debug in coffeescript? Any tips on how to set this up? We have not been able > to figure it out! > > Thanks in advance, and for your work on this tool! > > David Beck > > On Thursday, July 11, 2013 5:18:29 AM UTC-7, Jan Krems wrote: > > Hi, > > > > there's a source compiled event in v8 which I'm currently not handling > > which when I had it working had some performance impacts (on startup it > > would trigger a ton of back and forth traffic between devtools, bugger and > > v8), but it's definitely on the bug/todo list of bugger, as is the annoying > > websocket disconnected error. I currently don't have nearly as much time to > > work on bugger as I'd want to, so I'd be more than happy to review & accept > > PRs if you have any improvements. > > > > Thanks, > > Jan > > > > On Thursday, July 11, 2013 at 2:10 PM, phidelta wrote: > > > > > Hi, > > > > > > I am also constantly living in bugger (great work Jan!). I am currently > > > looking into extending it to provide saving of local changes. > > > Also bugger does writes to disconnected web-sockets if you do a reload of > > > the dev-tools which is sometimes necessary when more sourcefiles get add > > > via require(). So I am also looking into finding a way to either have > > > bugger catch those send errors if client connections go away or even > > > better forcing dev-tools to update its source list when changes occurr. > > > Maybe putting more effort into bugger, would be time better spent. > > > > > > Regards, Philipp > > > > > > On Wednesday, July 10, 2013 1:32:29 AM UTC+2, Adam Crabtree wrote: > > > > Howdy all, > > > > > > > > I have LinkedIn's blessing to work full-time for 2 weeks on building a > > > > node.js addon[1] for remote Chrome Devtools debugging. Since I've never > > > > built an addon, this is a rather ambitious task for my first addon, and > > > > nearly everyone in the community would benefit from this, I thought I'd > > > > solicit interest in working with me on it, either directly via pull > > > > requests or indirectly by giving advice on building node.js addons. > > > > > > > > Details: > > > > > > > > Per Pavel Feldman of the Chrome Devtools team, it's possible, with > > > > possibly some limited support from Chrome to decouple some APIs if > > > > necessary. For me personally, the inability to use the native Chrome > > > > debugger has always been a little frustrating, and this is my attempt > > > > to do what I can to resolve it. Any non-trivial contributions will > > > > receive Contributor permissions to accelerate collaboration. > > > > > > > > Pavel has also graciously provided me with the following high-level > > > > overview of where to start: > > > > > > > > // Begin Quote > > > > There is not much info available. These are the rough hints for you > > > > (use cs.chromium.org (http://cs.chromium.org/) to navigate Blink > > > > source). Then we could chat over VC / hangouts / Skype. > > > > > > > > [Compile] > > > > InspectorController is a container for remote debugging protocol > > > > agents. We have one for the Page (InspectorController.cpp) and we have > > > > one for the workers (WorkerInspectorController.cpp that has limited > > > > functionality). Given that Node is more like a worker (pure JS > > > > execution environment), take a look at that file for the list of agents > > > > to compile in your module (InspectorDebuggerAgent, > > > > InspectorConsoleAgent, InspectorProfileAgent, etc.). So you would need > > > > to compile all of them. > > > > > > > > These agents would pull ScriptDebugServer.cpp, ScriptProfiler.cpp, > > > > Script* etc. These are wrappers around v8, should compile against v8.h. > > > > Some of them (ScriptProfiler) and most of the agents will reference > > > > Node and that's what we need to fix. In fact, most of them will pull > > > > Page, Document, Node for no good reason and that's what we need to fix > > > > upstream, in Blink. > > > > > > > > You would also need to generate InspectorBackendDispatcher and > > > > InspectorFrontend from devtools/protocol.json. First one will parse > > > > incoming JSON messages and will dispatch them on controller's agents, > > > > second will generate typed API for agents to send messages back. Some > > > > tweaking would be necessary here as well since currently we generate a > > > > giant dispatch and giant front-end instead of per-domain files. Having > > > > them per-domain would let you only take what you really need. > > > > > > > > [Wire] > > > > Lets assume it all compiled. Now you need to instantiate this > > > > controller and call dispatchMessageFromFrontend on it with every > > > > message from the front-end. Front-end will issue them using web socket > > > > transport, so you need to have a server web socket as a part of your > > > > Node module that would accept connection and do the right thing to the > > > > messages (call dispatchMessageFromFrontend). And for the way back, your > > > > m_frontendChannel would need to send info back using that web socket. > > > > > > > > [Debugging] > > > > After compiling and wiring, console will start working. But you also > > > > need to make things work while on breakpoint. For that, you would need > > > > to implement runMessageLoopOnPause in your version of > > > > WorkerScriptDebugServer. > > > > > > > > As I mentioned, it is quite some work both downstream (in the Node > > > > module) and upstream (to remove poor Blink dependencies from agents). > > > > But it might be worth it. > > > > > > > > Regards > > > > Pavel > > > > > > > > // End Quote > > > > > > > > > > > > Feel free to submit pull requests or post issue to > > > > https://github.com/crabdude/lookingglass > > > > > > > > Cheers, > > > > Adam Crabtree > > > > > > > > [1] http://nodejs.org/api/addons.html > > > > > > > > -- > > > > Better a little with righteousness > > > > than much gain with injustice. > > > > Proverbs 16:8 > > > > > > -- > > > -- > > > Job Board: http://jobs.nodejs.org/ > > > Posting guidelines: > > > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > > > You received this message because you are subscribed to the Google > > > Groups "nodejs" group. > > > To post to this group, send email to [email protected] (javascript:) > > > To unsubscribe from this group, send email to > > > [email protected] (javascript:) > > > For more options, visit this group at > > > http://groups.google.com/group/nodejs?hl=en?hl=en > > > > > > --- > > > You received this message because you are subscribed to a topic in the > > > Google Groups "nodejs" group. > > > To unsubscribe from this topic, visit > > > https://groups.google.com/d/topic/nodejs/KlriDbLz1ho/unsubscribe. > > > To unsubscribe from this group and all its topics, send an email to > > > [email protected] (javascript:). > > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > > > > > -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > (mailto:[email protected]) > To unsubscribe from this group, send email to > [email protected] > (mailto:[email protected]) > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to a topic in the Google > Groups "nodejs" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/nodejs/KlriDbLz1ho/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected] > (mailto:[email protected]). > For more options, visit https://groups.google.com/groups/opt_out. > > -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
