DbgHlp: не подгружаются приватные символы

Тема в разделе "WASM.WIN32", создана пользователем nester7, 8 июл 2008.

  1. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    На днях нарыл код старого своего трейсера, в котором была стандартная
    последовательность для загрузки дебаг-символов:
    Код (Text):
    1.  SymInitialize(Process->Handle, NULL, FALSE);
    2.  SymLoadModule64(Process->Handle, Info->hFile, ImageName, NULL, Module->ImageBase, Module->ImageSize);
    3.  SymEnumSymbols(Process->Handle, Module->ImageBase, "*", EnumSymbolsCallBack, Process);
    Трабл в том, что сейчас в трейсере не подгружаются (в Emun-колбэке не перечисляются)
    приватные символы (например, для ntdll такие как LdrpXXX), хотя IDA и WinDbg их видят и нормально накладывают на код.
    Что я делаю не так (или чего я не делаю :)?

    PS:
    С SymSetOptions() игрался.
    dbghlp.dll последняя (со старой тоже пробовал - фиг).
     
  2. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Странная фигня. Несмотря на вкуривание MSDN, код
    Код (Text):
    1. SymInitialize(Process->Handle, NULL, FALSE);
    работать никак не захотел. Сменил на
    Код (Text):
    1. SymInitialize(GetCurrentProcess( ), "C:\\Symbols", TRUE)
    и все заработало.
    [​IMG]