-
Notifications
You must be signed in to change notification settings - Fork 113
Description
Component
Documentation
What problem are you facing?
I'm unable to understand the code required for a debugger plugin, to add custom commands identified by strings. The best example I can see, is inside src/VBox/Debugger/DBGPlugInOS2.cpp on line 1230:
pVMM->pfnDBGFR3InfoRegisterExternal(pUVM, "sas", "Dumps the OS/2 system anchor block (SAS).", dbgDiggerOS2InfoSas, pThis);
pVMM->pfnDBGFR3InfoRegisterExternal(pUVM, "gis", "Dumps the OS/2 global info segment (GIS).", dbgDiggerOS2InfoGis, pThis);
pVMM->pfnDBGFR3InfoRegisterExternal(pUVM, "lis", "Dumps the OS/2 local info segment (current process).", dbgDiggerOS2InfoLis, pThis);
pVMM->pfnDBGFR3InfoRegisterExternal(pUVM, "panic", "Dumps the OS/2 system panic message.", dbgDiggerOS2InfoPanic, pThis);
I've observed that the "detect" command, when running a Windows guest, calls dbgDiggerWinNtQueryVersion inside src/VBox/Debugger/DBGPlugInWinNt.cpp, to return a string containing the kernel version and build number. Beyond that, I'm not sure what other debugging functionality is being changed.
How can we fix this?
Explain which functions must be included, and their expected behaviors, within a debugger plugin.
What alternatives or workarounds exist?
Studying the existing plugin sources, and guessing which basic functions are required.
Anything else we should know?
I've this idea to possibly integrate volatility, and to be able to run executable code, inserted into memory by the debugger, and to dump module memory, which are both almost impossible for me at the moment.