-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathwrapperdesign.txt
51 lines (41 loc) · 1.53 KB
/
wrapperdesign.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Just a rough MagoWrapper class design and some thoughts about how everything should work:
- NativeDebugger
- LaunchExecutable : Debuggee
- AttachToProcess : Debuggee
- Debugee : System.Diagnostics.Process // might by a Process^ mProc; member only
- Breakpoints
- Enum : Breakpoint[]
- Add
- Remove
- DebugThreads
- Enum
- Current
- Modules : Module[]
- PauseExecution // DebugBreakpoint(hProcess)
- ResumeExecution
- Debug Events + handling, call backs, overloadable events for custom output
- Disassembler support -> Just read from virtual memory, make text out of the commands, and display the instructions in a view
- Breakpoint
- Offset
- HitCount
- Enabled (get/set)
- Module
- FileName
--> Can be done via .net Process class
- DebugThread
- StackFrames : StackFrame[] // == Call stack
- StackFrame
- CurrentInstruction (get/set)
- Registers : Register[] // probably a long[string] dictionary for value[register name]?
- Register
- Name
- Value (get/set)
- DDebugger : NativeDebugger
- getCodeLocationFromAddress(out string file, out CodeLocation location, ulong/uint address)
- getAddressFromCodeLocation(string file, CodeLocation location) : ulong/uint
- getFunctionLocals
- getGlobals (?)
- getTypes (?) -- enum types/static types ->> ability to display static items == Win!
- toString()-CodeInjection after launch and while acquiring symbol values == Win!
- enum type/object getters ->> Execute them to display getter values == Win!
- Expression evaluation -> Done with the D parser's evaluation engine.