-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request] Implement Assembly View/Disassembly View for Debugger #206
Comments
@marktrz if you're on Linux, nemiver does it all and is quite a performer. I'm using it as an alternative to vs debugger on linux and so far it performs well. Now only if vscode could implement its features 🎐 |
Thanks for the feedback. You can view disassembly in vscode using the -exec disassembly command in the debug console. Registers can be viewed the same way (-exec info registers). |
I have code in C which calls code in ASM and it would be very useful to debug the ASM code within vs code without calling specific gdb commands which only show part of the source. |
A register display would be very useful in situations like this, having it update as you step around. |
If I'm not mistaken, since it's been a couple of years since I used it, the sublime gdb plugin for sublime text 2 supported asm debugging, showing registers and everything (https://github.com/quarnster/SublimeGDB). Probably there is a way for it to be done on vs code |
Please add ASM window |
I have just spent days looking for alternatives to VSCode because I would like to have assembler, memory and register windows. Reworking a large open source project based on VSCode/CMmake to a new tool is considerable effort. There are many people asking for a memory view for a long time. Please do consider adding such a window. Memory view can execute the GDB x command after each step / trace as it is so last decade to enter that command repeatedly (or up arrow enter). Ideally the window would also highlight values that have changed. |
@doingnz You could try using Visual Studio 2017 -- they have some remote to Linux ability: https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/ . |
Please add ASM window |
This is probably related to #941 |
Has this been implemented yet??? |
No, but I think that they would happily accept a PR. |
Oh I am sure they would. PlatformIO has implemented this a long time ago. |
What's the hold up? Nothing about it in new insider build. @sean-mcmanus |
@optomux Not that I think that this feature is not needed, but I guess that's not top priority here. Just wait patiently or do it yourself. You can always copy appropriate code from PlatformIO to this extension and submit a pull request. |
I wish someone made an extension for it. Would PlatformIO work with this? |
@optomux I don't work on the debugger stuff at all. The other debugger people spend most of their time working on the Visual Studio debugger (a paid product, although there are some free versions with restricted licenses). Implementing an assembler view or other advanced debugging features isn't a priority for the debugger team and not on their schedule to implement. |
@sean-mcmanus Hi! |
@Izikiel Ask @WardenGnaw (or @pieandcakes when he gets back from vacation in January). I don't know much about how the debugger works since I just work on the language service stuff. I think most of it is open source. Another repo that may be relevant is https://github.com/Microsoft/MIEngine . |
I tried debugging in VSCode extension PlatformIO on my embedded device. Nice, it's possible to switch fluently between debugging of C source and disassembly view. |
Please add ASM window |
@jacdavis How does "-exec disassembly" work? While debugging, I type "-exec disassembly" + RETURN in the DEBUG CONSOLE window, but receive only "identifier "exec" is undefined". |
it will be cool |
I am trying to execute the instruction steps using vscode-cpptools + cppvsdbg, however, I have a wonder about it. For example, when I do a stepinto an address with no source information, it seems that a temporary step is being executed. Does anyone know anything about this behavior? Below is a comparison with VS. VS
VS Code
|
I'm playing with Rust and CodeLLDB in VSCode. Just FYI a screenshot from dissasembly view where you can "end up" during debugging of Rust code. Hope it's not so off-topic |
Official support is on the roadmap: |
For those following along, we are now tracking implementing this support directly in VS Code. You can subscribe to this issue for updates: microsoft/vscode#124163 |
The first iteration of this feature is now available in VS Code Insiders. Give it a try and let us know what you think. |
👍🏽 Note that you'll need the step granularity feature from MIEngine |
This should be addressed in 1.6.0-insiders. |
Yeah indeed it works with the insider version. Even the performance is a bit better. One missing feature is syntax highlighting. There are wonderful extensions for this like ASM Code Lens but since this view is not a normal editor there's no chance of them ever working. (It's also a bit weird in general that you can't select the code.) Btw Intel syntax can be set via ~/.gdbinit with |
Hi, I downloaded insiders 1.6.0 , I'm on mac. |
It's in the editor context menu during debugging. |
|
it seems that disassembly doesn't work on the gdb which is customized like for mips. |
Also no disassembly on esp32-C3 under esf-idf. Memory, code and registers are all visible within gdbgui. I'm running insiders 1.6.4. Is there something I need to enable or select to see these viewers (no context menu item, unless I'm being really dumb) |
Being able to view assembly and step through assembly instructions would be useful. Especially when debug information isn't available for a certain library. Right now it just displays a message saying unknown source, when it goes into one of these functions. Being able to view values of registers in the GUI some way. Not entirely sure how that would work with VSCode, but being able to the registers all the time and able to modify them such other assembly debuggers.
The text was updated successfully, but these errors were encountered: