Debugger For Various Languages


#1

Hi.
I am currently use the Intelli-J family of products (intelli-J, rubymine and webstorm) and I havent switched from it for a good few years.
However, I often find myself thinking its going a bit slow or its using lots of memory etc…
I have been on the lookout for a decent editor that I can use either as a replacement or alongside it.

However, one thing that I use a fair amount is a debugger to debug my code, not the editors code which most debugger topics in this forum seem to be about.

Is this technically possible in this project - I assume so. If so, does anyone have any pointers as to any implementations for ruby, scala, javascript etc…

Many thanks all for a brilliant project - cant wait to start using it


#2

I am also very interested in debugging. Expecially Node.js. Since Atom is built using Node.js it feels like this should be possible, but I guess it is not that trivial to implement.

I downloaded WebStorm about three times, and each time I give up after a few minutes because It just doesnt feel good.


#3

Just built (an early version of) an in-atom node.js debugger. Currently only has breakpoints and stepping, but it’s based on a very solid api underneath (basically node-inspector), so it’s “just” a matter of building and wiring up UI for basically any other features supported by the V8 debugger. Would love some help!

https://atom.io/packages/atom-node-debug

UPDATE: Package is now called just ‘debugger’, available here


#4

First ‘atom-node-debug’, then ‘node-debug’, now ‘debugger’. What’s next, ‘dbg’? :smile:


#5

Hah! Yeah, I guess got a little carried away once I discovered the “–rename” flag while working on your initial suggestion :slight_smile:

Actually, the second change was because I realized that without too much work, I could refactor this thing to work both in Node and Chrome… So “debugger” is more fitting (and so much shorter!)


#6

I think it could be good if we could create the frontend of the debugger as a standalone module and have it integrate with various languages via other plugin modules. In this way we don’t have to re-create the interface for every debugger but just the internal workings.
It could easily become a mess when switching between languages if every developer implements a different UI for different debuggers.


#7

Yes, I do want some debugging API for any languages it supports - on a personal side I’d love to be able to debug C/C++ programs running locally or remotely (i.e. having GDB-API would be a good start for such example).

On a professional side I’d need to have just the generic UI support for starting/stopping/stepping/setting breakpoint - as an example, we have initial support for editing sources in our database platform, and adding debugging support would be a big step forward.


#8

@nickdima I’m totally with you on this, and have been thinking about separating this out from the JS/node debugger package I’ve been playing with… but I’m not totally sure on how much to abstract away from the particular languages. I guess breakpoints / stepping through is pretty easy to generalize, but watches, stackframes/locals/globals might be slightly gnarlier.


#9

Yes, let’s get the discussion going. Maybe create a github repo with a to-do list to get the ball rollin’, would be good also if other people that have experience with building debuggers would join the conversation.


#10

Was there any progress on this? The above link to the package I’m assuming is no longer valid? It points to a repo that is only 8 days old.


#11

I was searching for a way to create a debugger for the Squirrel script language (with tweaks for its use in my own game engine), and ended up here. It would be great to be able to build such tool using Atom so we don’t have to rewrite an app from scratch with Qt or another GUI framework.


#12

Yes, I also landed here looking for a generic information on how to implement language debugging with the atom.io editor – basically looking for info on scripting jumping to files/line numbers, show a window with buttons like “break, step, etc”. A language-agnostic debugging frontend would be slick.

Has anyone found any other useful/relevant info?


#13

This is where Google referred me when searching for a visual debugger for the Atom editor. Creating a general UI for setting breakpoints, stepping through code and watching variables sounds like it should be easy, I’m a little surprised it’s not already built into the editor :stuck_out_tongue:


#15

hey, the url returns a 404 now :neutral_face:


#16

Try this package.


#17

Just like to share that Visual Code Studio has this functionality and it works really really great, might be worth looking into.


#18

Just one more thing I’d like to add: I see there are already some third party packages for providing an integrated debugger. Although these packages could be used as a base for other authors implementing more languages, I think it really is up to Atom core team to provide a debugging skeleton framework / api in order to have some garantuees for stability / updates etc.

Is it a deliberate choice of the core developers to not provide one, or is it on the roadmap somewhere?