Проблема загрузчика Windows - включите подробный режим - PullRequest
1 голос
/ 12 апреля 2010

Я нахожусь в процессе реорганизации некоторых устаревших библиотек в нашем приложении, которые имеет неуправляемый код, вызывающий библиотеки управляемого кода. Пока у меня есть код реорганизован, выдает следующую ошибку загрузчика:

 
...
'app.exe': Loaded 'C:\WINDOWS\system32\CsDisp.dll'
'app.exe': Loaded 'C:\WINDOWS\system32\psapi.dll'
'app.exe': Loaded 'C:\WINDOWS\system32\shell32.dll'
'app.exe': Loaded 'C:\appCode\Debug\daq206_32.dll', Binary was not built with debug information.
'app.exe': Loaded 'C:\appCode\Debug\SiUSBXp.dll', Binary was not built with debug information.
'app.exe': Loaded 'C:\appCode\Debug\AdlinkDAQ.dll', Symbols loaded.
'app.exe': Loaded 'C:\WINDOWS\system32\P9842.dll', Binary was not built with debug information.
LDR: LdrRelocateImageWithBias() failed 0xc0000018
LDR: OldBase     : 10000000
LDR: NewBase     : 00A80000
LDR: Diff        : 0x7c90d6fa0012f6cc
LDR: NextOffset  : 00000000
LDR: *NextOffset : 0x0
LDR: SizeOfBlock : 0xa80000
Debugger:: An unhandled non-continuable exception was thrown during process load
 

Я считаю, что ошибка 0xc0000018 - это перекрывающийся диапазон адресов. Итак, у меня есть два вопроса. Во-первых, какие параметры компоновщика могут вызвать эту ошибку? В настоящее время я связываюсь с / DYNAMICBASE: NO и / FIXED: Нет, поскольку именно так были настроены некоторые из предыдущих библиотек.
Во-вторых, есть ли способ включить подробный режим для загрузчика, чтобы я мог видеть, что именно он пытается загрузить? P9842 - это сторонняя библиотека, поэтому я предполагаю, что она попадает в одну из моих библиотек после P9842 и не работает на этой. Могу ли я сузить это? Спасибо.

1 Ответ

1 голос
/ 12 апреля 2010

Не знаю насчет первого вопроса. Поиск этого кода состояния попал в эту статью с интересным примечанием , что «До XP не было проверки в Windows на отображение страниц с различными типами памяти. Windows XP все же проверяет. ошибка с сообщением об ошибке STATUS_CONFLICTING_ADDRESSES (0xc0000018). " Может быть актуально, если вы используете MapViewOfFile ...

По второму вопросу вы хотите увидеть снимки загрузчика. См. эту статью на MSDN . Эта команда должна помочь: "gflags -i yourApp.exe + sls"

...