Comments (2)
Is your question how do obtain disassembly around the current instruction?
Or how do you decide that a disassembly that you previously requested is still valid?
For the former, assuming you would like to put the instruction in the center of your text buffer of height
lines, what should work is:
- Take the StackFrame.instructionPointerReference to see where you are
- Issue a disassemble request with
memoryReference
= instructionPointerReferenceinstructionOffset
= -height/2 (or more if you want to be able to page back without requesting more instructions)instructionCount
= height (or more if you want)resolveSymbols
= true (or false, up to you)
If the later, you could either:
- Just always update, to make sure that self-modifying code is handled. You could do something so that if the instructions you get back are the same and scrolling is unnecessary, you just move the current instruction indicator.
-or- - Issue a
readMemory
request withcount
=0, and check if theaddress
is within the range of disassembly that you have.
from debug-adapter-protocol.
Ok thanks. I was really just trying to work out which instruction was current.
But I think you answered with the fist part, combined with this :
An adapter must return exactly this number of instructions - any
- unavailable instructions should be replaced with an implementation-defined
- 'invalid instruction' value.
Point being, if I ask for 100 instructions with an offset of -50 then the 51st instruction is the one matching the memory reference.
Seems obvious now, thanks.
from debug-adapter-protocol.
Related Issues (20)
- Does `setBreakpoints` trigger multiple `breakpoint` events? HOT 2
- Protocol extension points HOT 3
- Lifetime of variableReference after setVariable HOT 3
- Clarify meaning of "system process" HOT 7
- Example on how to launch debug adapter HOT 3
- Standardise the ability for client/DA to use URIs in place of file paths (enabling debugging of non-file:/ sources) HOT 17
- Add additional data fields for breakpoints HOT 11
- Evaluation time out HOT 1
- Clarifications for setExceptionBreakpoints HOT 6
- Ordering of launch, setBreakpoints, and configurationDone HOT 3
- Add a "type" field for SourceBreakpoints HOT 16
- Add a `bytes` range to the DataBreakpointInfo Request HOT 14
- Clarification of the meaning of '?' in a request HOT 1
- Is it always allowed to send requests that control execution? HOT 3
- Proposal: Add new reason `finished` or `stepOut` and optional field `returnValue` to `Stopped Event` HOT 6
- OutputEvent variablesReference lifetime clarification HOT 1
- How does the debugger notify dap client that a breakpoint is disabled? HOT 8
- Proposal: add a document location to the evaluate request for the 'hover' variant. HOT 16
- Help needed : Disassembly a C/C++ frame (function) HOT 1
- Minor inconsistency in "evaluate" description
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from debug-adapter-protocol.