winsiderss / systeminformer

A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars & Solutions, Inc. @ http://www.windows-internals.com
https://systeminformer.sourceforge.io
MIT License
10.83k stars 1.38k forks source link

[Feature Request]Added "Create Full Dump" context menu #1840

Closed pedoc closed 5 months ago

pedoc commented 1 year ago

Description of the feature, modification, idea or suggestion

Hello, thank you for your great work

Currently, only a "mini dump" of the process can be created, but sometimes we want a "full dump" for program debugging

So I want to be able to have a context menu in the process list for creating a "full dump", Thanks

Current: image

Proposed implementation details (optional)

No response

jxy-s commented 5 months ago

The "minidump" is already mostly full dump, the same you would get with task manager. I am adding options that would give you more control on what you would get in the dump. Would something like this meet your expectations?

image

    switch (DumpType)
    {
    case PhProcessDumpTypeMinimal:
        context->DumpType =
            MiniDumpWithDataSegs |
            MiniDumpWithUnloadedModules |
            MiniDumpWithThreadInfo |
            MiniDumpIgnoreInaccessibleMemory;
        break;
    case PhProcessDumpTypeLimited:
        context->DumpType =
            MiniDumpWithFullMemory |
            MiniDumpWithUnloadedModules |
            MiniDumpWithFullMemoryInfo |
            MiniDumpWithThreadInfo |
            MiniDumpIgnoreInaccessibleMemory;
    default: case PhProcessDumpTypeNormal:
        // task manager uses these flags (wj32)
        context->DumpType =
            MiniDumpWithFullMemory |
            MiniDumpWithHandleData |
            MiniDumpWithUnloadedModules |
            MiniDumpWithFullMemoryInfo |
            MiniDumpWithThreadInfo |
            MiniDumpIgnoreInaccessibleMemory |
            MiniDumpWithIptTrace;
        break;
    case PhProcessDumpTypeFull:
        context->DumpType =
            MiniDumpWithDataSegs |
            MiniDumpWithFullMemory |
            MiniDumpWithHandleData |
            MiniDumpWithUnloadedModules |
            MiniDumpWithIndirectlyReferencedMemory |
            MiniDumpWithProcessThreadData |
            MiniDumpWithPrivateReadWriteMemory |
            MiniDumpWithFullMemoryInfo |
            MiniDumpWithCodeSegs |
            MiniDumpWithFullAuxiliaryState |
            MiniDumpWithPrivateWriteCopyMemory |
            MiniDumpIgnoreInaccessibleMemory |
            MiniDumpWithTokenInformation |
            MiniDumpWithModuleHeaders |
            MiniDumpWithAvxXStateContext |
            MiniDumpWithIptTrace;
        break;
    }

I am also adding an option specific for "System" that assists in generation of live kernel dumps: image

jxy-s commented 5 months ago

Added: https://github.com/winsiderss/systeminformer/commit/cf92171764d3653fccc68a944226cc8d2cf62957

pedoc commented 5 months ago

nice,thank you