Commit 280259aa authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

winedbg: In "info threads" commands, also show the name of the processes even if not debugged.

parent d0a3ef4f
......@@ -475,6 +475,22 @@ void info_win32_processes(void)
}
}
static BOOL get_process_name(DWORD pid, PROCESSENTRY32* entry)
{
BOOL ret = FALSE;
HANDLE snap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (snap != INVALID_HANDLE_VALUE)
{
entry->dwSize = sizeof(*entry);
if (Process32First(snap, entry))
while (!(ret = (entry->th32ProcessID == pid)) &&
Process32Next(snap, entry));
CloseHandle(snap);
}
return ret;
}
void info_win32_threads(void)
{
HANDLE snap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
......@@ -500,11 +516,19 @@ void info_win32_threads(void)
if (entry.th32OwnerProcessID != lastProcessId)
{
struct dbg_process* p = dbg_get_process(entry.th32OwnerProcessID);
PROCESSENTRY32 pcs_entry;
const char* exename;
if (p)
exename = dbg_W2A(p->imageName, -1);
else if (get_process_name(entry.th32OwnerProcessID, &pcs_entry))
exename = pcs_entry.szExeFile;
else
exename = "";
dbg_printf("%08x%s %s\n",
entry.th32OwnerProcessID, p ? " (D)" : "",
p ? dbg_W2A(p->imageName, -1) : "");
lastProcessId = entry.th32OwnerProcessID;
entry.th32OwnerProcessID, p ? " (D)" : "", exename);
lastProcessId = entry.th32OwnerProcessID;
}
dbg_printf("\t%08x %4d%s\n",
entry.th32ThreadID, entry.tpBasePri,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment