Skip to content

[Req]: Include more documentation for writing debugger plugins and custom commands #502

@ben-cottrell-nz

Description

@ben-cottrell-nz

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions