[PATCH 2/3] programs/winedbg: get rid of dbg_W2A helper

Eric Pouech eric.pouech at gmail.com
Wed Mar 2 09:52:55 CST 2022


Signed-off-by: Eric Pouech <eric.pouech at gmail.com>

---
 programs/winedbg/debugger.h     |    1 -
 programs/winedbg/gdbproxy.c     |    8 ++++----
 programs/winedbg/info.c         |   16 ++++++++--------
 programs/winedbg/stack.c        |    5 ++---
 programs/winedbg/tgt_active.c   |    4 ++--
 programs/winedbg/tgt_minidump.c |    4 ++--
 programs/winedbg/winedbg.c      |   22 ----------------------
 7 files changed, 18 insertions(+), 42 deletions(-)

diff --git a/programs/winedbg/debugger.h b/programs/winedbg/debugger.h
index b7dcde201d8..1ae2dce4689 100644
--- a/programs/winedbg/debugger.h
+++ b/programs/winedbg/debugger.h
@@ -501,7 +501,6 @@ extern BOOL             types_is_integral_type(const struct dbg_lvalue*);
 extern BOOL             types_is_float_type(const struct dbg_lvalue*);
 
   /* winedbg.c */
-extern const char*      dbg_W2A(const WCHAR* buffer, unsigned len);
 #ifdef __GNUC__
 extern int WINAPIV      dbg_printf(const char* format, ...) __attribute__((format (printf,1,2)));
 #else
diff --git a/programs/winedbg/gdbproxy.c b/programs/winedbg/gdbproxy.c
index 0268a288481..a63748c6ebe 100644
--- a/programs/winedbg/gdbproxy.c
+++ b/programs/winedbg/gdbproxy.c
@@ -538,9 +538,9 @@ static BOOL handle_debug_event(struct gdb_context* gdbctx, BOOL stop_on_dll_load
         QueryFullProcessImageNameW( gdbctx->process->handle, 0, u.buffer, &size );
         dbg_set_process_name(gdbctx->process, u.buffer);
 
-        fprintf(stderr, "%04lx:%04lx: create process '%s'/%p @%p (%lu<%lu>)\n",
+        fprintf(stderr, "%04lx:%04lx: create process '%ls'/%p @%p (%lu<%lu>)\n",
                     de->dwProcessId, de->dwThreadId,
-                    dbg_W2A(u.buffer, -1),
+                    u.buffer,
                     de->u.CreateProcessInfo.lpImageName,
                     de->u.CreateProcessInfo.lpStartAddress,
                     de->u.CreateProcessInfo.dwDebugInfoFileOffset,
@@ -564,9 +564,9 @@ static BOOL handle_debug_event(struct gdb_context* gdbctx, BOOL stop_on_dll_load
     case LOAD_DLL_DEBUG_EVENT:
         fetch_module_name( de->u.LoadDll.lpImageName, de->u.LoadDll.lpBaseOfDll,
                            u.buffer, ARRAY_SIZE(u.buffer) );
-        fprintf(stderr, "%04lx:%04lx: loads DLL %s @%p (%lu<%lu>)\n",
+        fprintf(stderr, "%04lx:%04lx: loads DLL %ls @%p (%lu<%lu>)\n",
                 de->dwProcessId, de->dwThreadId,
-                dbg_W2A(u.buffer, -1),
+                u.buffer,
                 de->u.LoadDll.lpBaseOfDll,
                 de->u.LoadDll.dwDebugInfoFileOffset,
                 de->u.LoadDll.nDebugInfoSize);
diff --git a/programs/winedbg/info.c b/programs/winedbg/info.c
index 2b8e377e6f4..bb933aeb455 100644
--- a/programs/winedbg/info.c
+++ b/programs/winedbg/info.c
@@ -565,7 +565,7 @@ void info_win32_processes(void)
     }
 }
 
-static BOOL get_process_name(DWORD pid, PROCESSENTRY32* entry)
+static BOOL get_process_name(DWORD pid, PROCESSENTRY32W* entry)
 {
     BOOL   ret = FALSE;
     HANDLE snap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
@@ -573,9 +573,9 @@ static BOOL get_process_name(DWORD pid, PROCESSENTRY32* entry)
     if (snap != INVALID_HANDLE_VALUE)
     {
         entry->dwSize = sizeof(*entry);
-        if (Process32First(snap, entry))
+        if (Process32FirstW(snap, entry))
             while (!(ret = (entry->th32ProcessID == pid)) &&
-                   Process32Next(snap, entry));
+                   Process32NextW(snap, entry));
         CloseHandle(snap);
     }
     return ret;
@@ -607,18 +607,18 @@ void info_win32_threads(void)
 		 */
 		if (entry.th32OwnerProcessID != lastProcessId)
 		{
-                    PROCESSENTRY32 pcs_entry;
-                    const char* exename;
+                    PROCESSENTRY32W pcs_entry;
+                    const WCHAR* exename;
 
                     p = dbg_get_process(entry.th32OwnerProcessID);
                     if (p)
-                        exename = dbg_W2A(p->imageName, -1);
+                        exename = p->imageName;
                     else if (get_process_name(entry.th32OwnerProcessID, &pcs_entry))
                         exename = pcs_entry.szExeFile;
                     else
-                        exename = "";
+                        exename = L"";
 
-		    dbg_printf("%08lx%s %s\n",
+		    dbg_printf("%08lx%s %ls\n",
                                entry.th32OwnerProcessID, p ? " (D)" : "", exename);
                     lastProcessId = entry.th32OwnerProcessID;
 		}
diff --git a/programs/winedbg/stack.c b/programs/winedbg/stack.c
index 5d3504f1057..294694cf85c 100644
--- a/programs/winedbg/stack.c
+++ b/programs/winedbg/stack.c
@@ -407,9 +407,8 @@ static void backtrace_all(void)
                 dbg_active_wait_for_first_exception();
             }
 
-            dbg_printf("\nBacktracing for thread %04lx in process %04lx (%s):\n",
-                       entry.th32ThreadID, dbg_curr_pid,
-                       dbg_W2A(dbg_curr_process->imageName, -1));
+            dbg_printf("\nBacktracing for thread %04lx in process %04lx (%ls):\n",
+                       entry.th32ThreadID, dbg_curr_pid, dbg_curr_process->imageName);
             backtrace_tid(dbg_curr_process, entry.th32ThreadID);
         }
         while (Thread32Next(snapshot, &entry));
diff --git a/programs/winedbg/tgt_active.c b/programs/winedbg/tgt_active.c
index 2caa62206d6..c17a6f38290 100644
--- a/programs/winedbg/tgt_active.c
+++ b/programs/winedbg/tgt_active.c
@@ -484,8 +484,8 @@ static unsigned dbg_handle_debug_event(DEBUG_EVENT* de)
         break_set_xpoints(TRUE);
         if (DBG_IVAR(BreakOnDllLoad))
         {
-            dbg_printf("Stopping on DLL %s loading at %p\n",
-                       dbg_W2A(u.buffer, -1), de->u.LoadDll.lpBaseOfDll);
+            dbg_printf("Stopping on DLL %ls loading at %p\n",
+                       u.buffer, de->u.LoadDll.lpBaseOfDll);
             if (dbg_fetch_context()) cont = 0;
         }
         break;
diff --git a/programs/winedbg/tgt_minidump.c b/programs/winedbg/tgt_minidump.c
index 6a947cbc2db..5fa615bcd45 100644
--- a/programs/winedbg/tgt_minidump.c
+++ b/programs/winedbg/tgt_minidump.c
@@ -307,8 +307,8 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data)
             str = "???";
             break;
         }
-        dbg_printf("  %s was running on #%d %s CPU%s",
-                   dbg_W2A(exec_name, -1), msi->u.s.NumberOfProcessors, str,
+        dbg_printf("  %ls was running on #%d %s CPU%s",
+                   exec_name, msi->u.s.NumberOfProcessors, str,
                    msi->u.s.NumberOfProcessors < 2 ? "" : "s");
         switch (msi->MajorVersion)
         {
diff --git a/programs/winedbg/winedbg.c b/programs/winedbg/winedbg.c
index dc6355be4cd..d11b68ec432 100644
--- a/programs/winedbg/winedbg.c
+++ b/programs/winedbg/winedbg.c
@@ -113,28 +113,6 @@ static void dbg_outputA(const char* buffer, int len)
     }
 }
 
-const char* dbg_W2A(const WCHAR* buffer, unsigned len)
-{
-    static unsigned ansilen;
-    static char* ansi;
-    unsigned newlen;
-
-    newlen = WideCharToMultiByte(CP_ACP, 0, buffer, len, NULL, 0, NULL, NULL);
-    if (newlen > ansilen)
-    {
-        static char* newansi;
-        if (ansi)
-            newansi = HeapReAlloc(GetProcessHeap(), 0, ansi, newlen);
-        else
-            newansi = HeapAlloc(GetProcessHeap(), 0, newlen);
-        if (!newansi) return NULL;
-        ansilen = newlen;
-        ansi = newansi;
-    }
-    WideCharToMultiByte(CP_ACP, 0, buffer, len, ansi, newlen, NULL, NULL);
-    return ansi;
-}
-
 int WINAPIV dbg_printf(const char* format, ...)
 {
     static    char	buf[4*1024];




More information about the wine-devel mailing list