Do you know how to read another process stack in delphi ??
相关问题
- Is there a Delphi 5 component that can handle .png
- the application was unable to start correctly 0xc0
- Is there a way to install Delphi 2010 on Windows 2
- Pass custom debug information to Microsoft bot fra
- Is TWebBrowser dependant on IE version?
相关文章
- Why windows 64 still makes use of user32.dll etc?
- How do I get to see DbgPrint output from my kernel
- Best way to implement MVVM bindings (View <-> V
- Can WM_NEXTDLGCTL be used with non-dialog windows?
- Advanced profiling is unavailable for the selected
- Windows EventLog: How fast are operations with it?
- Can't Inspect Variables When Debugging .NET As
- What is the difference between glibc's MALLOC_
You could take a look at the "TThreadSampler.MakeStackDump" procedure of the following unit of my sampling profiler: http://code.google.com/p/asmprofiler/source/browse/trunk/Sampling/mcThreadSampler.pas
This function can read from the same thread, or same process or different process (each with it's own optimized function).
Btw: my Sampling Profiler reads Delphi debug symbols (.map, .jdbg, etc) because there is still no good Delphi to Pdb debug symbol converter (so you can view the stack of a Delphi program in Windows debugger or Process Explorer, Visual Studio etc). You can also use my sampling profiler for view the current stack of any process! http://code.google.com/p/asmprofiler/wiki/AsmProfilerSamplingMode
Yes.
You can enumerate threads with Toolhelp functions; get the context with
GetThreadContext()
; and read the stack memory (i.e. using ESP from the context) withReadProcessMemory()
. The stack grows downwards in memory, so reading memory locations after ESP is going down the stack.