{"id":13840915,"url":"https://github.com/tedyyu/ProcDumpEx","last_synced_at":"2025-07-11T09:33:54.533Z","repository":{"id":147372127,"uuid":"193472426","full_name":"tedyyu/ProcDumpEx","owner":"tedyyu","description":"ProcDumpEx = ProcDump in batch mode ","archived":false,"fork":false,"pushed_at":"2020-04-13T07:03:01.000Z","size":14,"stargazers_count":15,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-05T17:26:10.097Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tedyyu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-06-24T09:11:46.000Z","updated_at":"2024-06-21T00:08:13.000Z","dependencies_parsed_at":"2024-02-03T03:58:08.675Z","dependency_job_id":null,"html_url":"https://github.com/tedyyu/ProcDumpEx","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedyyu%2FProcDumpEx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedyyu%2FProcDumpEx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedyyu%2FProcDumpEx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedyyu%2FProcDumpEx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tedyyu","download_url":"https://codeload.github.com/tedyyu/ProcDumpEx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225712824,"owners_count":17512496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T17:00:59.484Z","updated_at":"2024-11-21T10:30:57.611Z","avatar_url":"https://github.com/tedyyu.png","language":"C#","readme":"# ProcDumpEx\n\nAs you may know, sysinternals' [procdump](https://docs.microsoft.com/en-us/sysinternals/downloads/procdump) is a great tool to capture crash dump files when certain condition meets.\n\nHowever, it can only work for one process at a time, by either pid or image name.\n\nIf there are more than one processes with the same name opened on your machine, it will just reports:\n\n```\n\u003eprocdump chrome.exe\n\nProcDump v9.0 - Sysinternals process dump utility\nCopyright (C) 2009-2017 Mark Russinovich and Andrew Richards\nSysinternals - www.sysinternals.com\n\n[17:17:17] Multiple processes match the specified name.\n```\n\nThe same logic happens to \"-w\" option in that it only monitors the next ONE process started afterwards.\n\nThat's why I decide to enhance it with a new wrapper named ProcDumpEx. It can dump multiple processes in one single command. Use \"-d\" option I invented to work with existing processes, and \"-w\" option to wait for certain processes. You can also use all the existing options provided by procdump utility.\n\n**NOTE: This tool uses WMI to check new process event and thus need *administrative* priviledge to run. You can download the executable from the release tab.\n\nHere are some examples:\n\n1. Dump all the running notepad.exe processes\n```\nprocdumpex -ma -e -d notepad.exe\n```\n\n2. Dump all notepad.exe processes started from now on\n```\nprocdumpex -ma -e -w notepad.exe\n```\n\n3. Combine both cases above\n```\nprocdumpex -ma -e -w notepad.exe -d notepad.exe\n```\n\nYou can list multiple process names with comma separated in one command.\n\n4. Dump all notepad.exe and calc.exe started later on when they use more than 30% CPU for 3 seconds\n```\nprocdumpex -ma -e -c 30 -s 3 -w \"notepad.exe,calc.exe\"\n```\n\nA more realistic example is to dump process when a performance counter hits (-p option provided by procdump), for example:\n\n5. Dump following processes when the system total CPU hits 80%.\n```\nprocdumpex -ma -e -s 2 -n 3  -w \"chrome.exe,wmplayer.exe\" -d \"chrome.exe,wmplayer.exe\"  -p \"\\Processor(_Total)\\% Processor Time\" 80 C:\\temp\\dump\\PROCESSNAME_PID_YYMMDD_HHMMSS.dmp\n```\n\n6. Dump all (actually up to 100) first chance exceptions (-e 1) of a deferred launched image names.\n```\nProcDumpEx.exe -ma -e 1 -n 100 -w foobar.exe\n```\n\nAnother good feature is you just need to click CTRL+C to clean up all command windows that are opened.\n","funding_links":[],"categories":["C# #"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftedyyu%2FProcDumpEx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftedyyu%2FProcDumpEx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftedyyu%2FProcDumpEx/lists"}