Replies: 3 comments 5 replies
-
@astrelsky We have a ticket in for this, but it has been the subject of some debate. For many targets, walking/recording the entire stack on every step is pretty expensive and slows stepping to a crawl, so it would be better if it were optional. FYI, you should be able to open the stack in the Objects window and retrieve the entire stack and/or pull it up in the Interpreter (although obviously that doesn't currently support easy navigation). Which agent are you using (e.g. gdb, dbgeng....)? |
Beta Was this translation helpful? Give feedback.
-
Ok, well that's pretty straightforward: in Objects, open Debugger->Sessions[x]->Processes[y]->Threads[z]->Stack -- should give you what you want. Open any given frame, and it should have Frame, Instruction, Return, and Stack offsets. Double-clicking any of these or hitting G (fo GoTo) when they're selected should navigate to that address. Anything in any other window is recorded by default, which is why the Stack Viewer only shows modifications to the stack. |
Beta Was this translation helpful? Give feedback.
-
Ah - not sure why those addresses are not in the trace, but you can force all of memory in from the Regions view. Then every address should be navigable. (This is only a truly bad idea on embedded devices where navigating to unreadable memory would kill the device.) |
Beta Was this translation helpful? Give feedback.
-
I would like to view the contents of the stack when stopped at a breakpoint so I can see the arguments passed to a function. The "stack" window just shows a few levels, pc and a function name and doesn't show the stack. Attempting to navigate to *:4 esp goes to the address of the pointer on the stack (ie ghidra can read the stack memory) but attempting to go to esp or rsp results in "address not in trace".
It would be handy to be able to view the stack contents in a window.
Beta Was this translation helpful? Give feedback.
All reactions