Skip to content

Disassembly support #460

Closed
Closed

Description

@diggit

Hi,
Just letting you know, that VSC got support for disassembly view microsoft/vscode#124163
So UI should be already solved and not it's up to extensions to provide disassembly feature.
Unfortunately, I am not able to help in any other way than testing.

Activity

  1. haneefdm commented on Aug 9, 2021

    @haneefdm
    Collaborator

    Yup, tracking that. I was involved in getting disassembly (and registers and memory) into the protocol specification a while ago. It is already included in the July release of VSCode. Now, there is an implementation. Disassembly was less of an issue than doing lazy disassembly, handling breakpoints, stepping, etc. We have something that already works (you can invoke it using the 'Command Pallete') but it is function-based

    I am not sure the UI is already solved. We will see what the C++ extension did with this and how far it went.

  2. Trass3r commented on Aug 19, 2021

    @Trass3r

    microsoft/vscode#129762 is the next stage.

  3. PhilippHaefele commented on Nov 21, 2021

    @PhilippHaefele
    Contributor

    Seems that with the October Release (1.6) they also added interleaved code in the new disassembly view microsoft/vscode#132541 . So this would also address #64.

    I already had initially looked/debug into the MI interface on how to get the information from GDB. @haneefdm If you don‘t mind or already working on that, i‘ll give it a try after my planned doc cleanup is finished

  4. haneefdm commented on Nov 21, 2021

    @haneefdm
    Collaborator

    Yes, go for it. Please enable TSLint. For some reason, some code you checked in did not pass that. I was part of adding that to the adapter protocol specification.

    We are supposed to use ESLint but that migration proved to be a huge amount of work. We have to bite that bullet sooner than later.

    Be careful about performance and it needs to be lazy loading of the asm code. Mapping disassembled code to breakpoints is another thing to keep in mind. This could be pretty involved but will be worth it.

    Also, if you can, don't assume any type of assembly. Just take whatever gdb gives you. Including RISC-V or 64-bit code. Going forward, I am trying to be agnostic about those things.

  5. haneefdm commented on Nov 21, 2021

    @haneefdm
    Collaborator

    Btw, the MI interface is the easy part. It is the presentation.

  6. PhilippHaefele commented on Jan 5, 2022

    @PhilippHaefele
    Contributor

    Thanks to @haneefdm the extension has now (since prerelease version V1.1.7) support for the VSCode Disassembly view

  7. PhilippHaefele commented on Jan 20, 2022

    @PhilippHaefele
    Contributor
  8. haneefdm commented on Jan 20, 2022

    @haneefdm
    Collaborator

    Hi @PhilippHaefele , not sure if you noticed in the release notes...

    image

    This was a pretty large release. Fingers crossed. Thank you so much. On to WSL support (and Docker/SSH)

  9. haneefdm commented on Jan 20, 2022

    @haneefdm
    Collaborator

    Oh, and I think we finished this before MS did for the cpptools. I did provide them with my implementation and the pitfalls with gdb. They were reading the memory three times to do the disassembly, I am doing it in one pass. Knowing valid memory regions is tough on a native file system -- also hard in an embedded system when stuff is stored outside the device and loaded at run-time.

    When they are done, I have to go to their implementation to see what I can learn.

  10. PhilippHaefele commented on Jan 20, 2022

    @PhilippHaefele
    Contributor

    Hi @PhilippHaefele , not sure if you noticed in the release notes...

    image

    This was a pretty large release. Fingers crossed. Thank you so much. On to WSL support (and Docker/SSH)

    Thank you very much for this mentioning. Also thank you very much for this great release. Me and my colleagues will enjoy the new features.

    Hope i get some free time soon to finish my documentation work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions