Eric Pouech : taskmgr: Let the debug channels work again.

Alexandre Julliard julliard at wine.codeweavers.com
Sat Apr 7 05:23:20 CDT 2007


Module: wine
Branch: master
Commit: 955ba73ebf1ed54a73bec783a82f095717fea001
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=955ba73ebf1ed54a73bec783a82f095717fea001

Author: Eric Pouech <eric.pouech at wanadoo.fr>
Date:   Sat Apr  7 10:47:46 2007 +0200

taskmgr: Let the debug channels work again.

While I was at it, simplified the symbol lookup for the debug options.

---

 programs/taskmgr/dbgchnl.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/programs/taskmgr/dbgchnl.c b/programs/taskmgr/dbgchnl.c
index 9671469..1102606 100644
--- a/programs/taskmgr/dbgchnl.c
+++ b/programs/taskmgr/dbgchnl.c
@@ -157,22 +157,22 @@ static int change_channel_CB(HANDLE hProcess, void* addr, struct __wine_debug_ch
     return 1;
 }
 
-static void* get_symbol(HANDLE hProcess, const char* name, const char* lib)
+static void* get_symbol(HANDLE hProcess, const char* name)
 {
     char                buffer[sizeof(IMAGEHLP_SYMBOL) + 256];
     SYMBOL_INFO*        si = (SYMBOL_INFO*)buffer;
     void*               ret = NULL;
 
-    pSymSetOptions(SYMOPT_DEFERRED_LOADS | SYMOPT_PUBLICS_ONLY);
-    /* FIXME: the TRUE option is due to the face that dbghelp requires it
+    /* also ask for wine extensions (loading symbols from ELF files) */
+    pSymSetOptions(SYMOPT_DEFERRED_LOADS | SYMOPT_PUBLICS_ONLY | 0x40000000);
+    /* FIXME: the TRUE option is due to the fact that dbghelp requires it
      * when loading an ELF module
      */
     if (pSymInitialize(hProcess, NULL, TRUE))
     {
         si->SizeOfStruct = sizeof(*si);
         si->MaxNameLen = sizeof(buffer) - sizeof(IMAGEHLP_SYMBOL);
-        if (pSymLoadModule(hProcess, NULL, lib, NULL, 0, 0) &&
-            pSymFromName(hProcess, name, si))
+        if (pSymFromName(hProcess, name, si))
             ret = (void*)(ULONG_PTR)si->Address;
         pSymCleanup(hProcess);
     }
@@ -193,7 +193,7 @@ static int enum_channel(HANDLE hProcess, EnumChannelCB ce, void* user)
     int                         ret = 1;
     void*                       addr;
 
-    if (!(addr = get_symbol(hProcess, "debug_options", "libwine.so"))) return -1;
+    if (!(addr = get_symbol(hProcess, "libwine.so.1!debug_options"))) return -1;
 
     while (ret && addr && ReadProcessMemory(hProcess, addr, &channel, sizeof(channel), NULL))
     {




More information about the wine-cvs mailing list