Probleme bei der Nutzung von umdh



  • Moin zusammen.

    Um eine Memory-Leak-Analyse zu machen, bin ich auf das Tool umdh aus dem Windows Debugging Toolkit gestoßen.

    Leider habe ich Probleme mit den Symbolen meiner Applikation.

    Was ich gemacht habe:

    - gflags.exe auf der Zielhardware aufgerufen, um die user mode stack trace database zu erstellen
    - meine Applikation mit DEBUG übersetzt, um die Symbole in *.pdb Dateien zu haben
    - Applikation auf der Ziel-HW laufen lassen
    - mit "umdh -pn:MemoryLeakTest.exe -f:log1.txt" einen Log aufgenommen
    - mit "umdh -pn:MemoryLeakTest.exe -f:log2.txt" einen weiteren Log aufgenommen
    - mit "set _NT_SYMBOL_PATH=S:\WindowsDebugging\symbolsXPSP1;S:\WindowsDebugging\MemoryLeakTest" die Pfade auf meine Symbole und zu denen von Windows XP SP1 gesetzt
    - wenn ich nun mit "umdh log1.txt log2.txt > logcompare.txt" ein Compare machen will, steht im Ergebnis-File, dass die Symbole meiner Applikation nicht geladen wurden. Die von Windows wurden aber geladen...

    Das Logfile von DBGHELP sagt Folgendes:

    DBGHELP: new session: Mon Jan 02 11:04:46 2012
    DBGHELP: _NT_SYMBOL_PATH: S:\WindowsDebugging\symbolsXPSP1;S:\WindowsDebugging\MemoryLeakTest
    DBGHELP: Symbol Search Path: .;S:\WindowsDebugging\symbolsXPSP1;S:\WindowsDebugging\MemoryLeakTest
    DBGHELP: .\umdh.pdb - file not found
    DBGHELP: .\exe\umdh.pdb - file not found
    DBGHELP: .\symbols\exe\umdh.pdb - file not found
    DBGHELP: S:\WindowsDebugging\symbolsXPSP1\umdh.pdb - file not found
    DBGHELP: S:\WindowsDebugging\symbolsXPSP1\exe\umdh.pdb - file not found
    DBGHELP: S:\WindowsDebugging\symbolsXPSP1\symbols\exe\umdh.pdb - file not found
    DBGHELP: S:\WindowsDebugging\MemoryLeakTest\umdh.pdb - file not found
    DBGHELP: S:\WindowsDebugging\MemoryLeakTest\exe\umdh.pdb - file not found
    DBGHELP: S:\WindowsDebugging\MemoryLeakTest\symbols\exe\umdh.pdb - file not found
    DBGHELP: umdh.pdb - file not found
    DBGHELP: MemoryLeakInThread_60 - no symbols loaded
    DBGHELP: .\ntdll.pdb - file not found
    DBGHELP: .\dll\ntdll.pdb - file not found
    DBGHELP: .\symbols\dll\ntdll.pdb - file not found
    DBGHELP: S:\WindowsDebugging\symbolsXPSP1\ntdll.pdb - file not found
    DBGHELP: ntdll - public symbols
    S:\WindowsDebugging\symbolsXPSP1\dll\ntdll.pdb
    DBGHELP: .\kernel32.pdb - file not found
    DBGHELP: .\dll\kernel32.pdb - file not found
    DBGHELP: .\symbols\dll\kernel32.pdb - file not found
    DBGHELP: S:\WindowsDebugging\symbolsXPSP1\kernel32.pdb - file not found
    DBGHELP: kernel32 - public symbols
    S:\WindowsDebugging\symbolsXPSP1\dll\kernel32.pdb
    DBGHELP: closing session: Mon Jan 02 11:04:46 2012

    Was mache ich denn falsch, dass das Tool die Symbole in der *.pdb Datei nicht findet? Hab das File schon in unterschiedlichen Ordnern ausprobiert.
    Ich dachte schon daran, dass es daran liegt, dass S:\ ein Netzlaufwerk ist, aber die Windows Symbole werden trotzdem gefunden.

    Bin ratlos 😕

    /edit: Ich wundere mich, dass laut Logdatei das File umdh.pdb gesucht wird. Das habe ich aber nirgends gefunden. Wofür braucht das Tool diese pdb?


Anmelden zum Antworten