Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.12.21;
Скачать: [xml.tar.bz2];

Вниз

Ошибка загрузки dll. at $7C812A5B. Почему такое может быть?   Найти похожие ветки 

 
Vlad Oshin ©   (2008-10-21 11:53) [0]

Есть программа и 12 dll.

В dpr стоит в первых строках
 JclStackTrackingOptions :=  [stExceptFrame, stStack,  stRawMode, stAllModules, stStaticModuleList];
 JclStartExceptionTracking;
 JclAddExceptNotifier(LogException);  


соответственно проседура
procedure LogException(ExceptObj: TObject; ExceptAddr: Pointer; IsOS: Boolean);
var
 mmLog: String;
 ModInfo: TJclLocationInfo;
begin
 try
   ModInfo := GetLocationInfo(ExceptAddr);
   mmLog:=Format(
     #13#10+"Exception occured at $%p "+#13#10+
     "Module "%s""+#13#10+
     "Procedure "%s""+#13#10+
     "Unit "%s""+#13#10+
     "Line %d",
     [ModInfo.Address,
      ModInfo.UnitName,
      ModInfo.ProcedureName,
      ModInfo.SourceName,
      ModInfo.LineNumber]);
   WriteToLog(mmLog);
 Except
 end;
end;


Вчера все работало. Сегодня поправил 2 из них(написал несколько отправок сообщений главной форме app по нажатию на кнопки).

Лог
DateTime: 21.10.2008 11:31:26
NumeroQuattro.Департамент: module NQItem.dll attach process
----------------------------------------------------------------------------------------------------------------------- DateTime: 21.10.2008 11:31:26
NumeroQuattro.Департамент: module NQItemGroup.dll attach process
----------------------------------------------------------------------------------------------------------------------- DateTime: 21.10.2008 11:31:26
Exception occured at $7C812A5B Module "" Procedure "RaiseException" Unit "" Line 0----------------------------------------------------------------------------------------------------------------------- DateTime: 21.10.2008 11:31:26
NumeroQuattro.Департамент: module NQReport.dll attach process


dll NQItemGroup.dll не трогал сегодня вообще!!
что она из себя представляет: форма, на ней cxDBTreeList(DevExpress), панель, 4кнопки
Соответственно, отображает дерево из БД, можно выбрать что-то. И "что-то" засылается сообщением далее. Да это и не важно. После этой ошибки дерево при вызове пустое. Данные не считались.
Все dll делаются по шаблону. Эта - единственная, где исп. cxDBTreeList. Везде в других исп. cxGrid, едиты, комбо, и т.п.
Тут тоже, но + cxDBTreeList.

То ли с ним проблемы, то ли с чем?
Есть какие мысли?


 
Vlad Oshin ©   (2008-10-21 12:01) [1]

ничего не понимаю..
А судя по стеку

NQ.LogException(???,$7C812A5B,???)
JclHookExcept.TNotifierItem.DoNotify(???,???,True)
JclHookExcept.DoExceptNotify($196F0F0,$7C812A5B,True)
JclHookExcept.HookedExceptObjProc(???)
:51f26b4d @HandleAnyException + $35
:7c90378b ntdll.RtlConvertUlongToLargeInteger + 0x46
:7c90eafa ntdll.KiUserExceptionDispatcher + 0xe
:030d0258 SetThreadName + $48
:0310b793 IdThread + $13
:51f2747c @StartLib + $C4
:7c9011a7 ntdll.LdrInitializeThunk + 0x29
:7c91cbab ; ntdll.dll
:7c916178 ; ntdll.dll
:7c9162da ; ntdll.dll
:7c801bb9 kernel32.LoadLibraryExW + 0xc8
:7c801d6e kernel32.LoadLibraryExA + 0x1f
:7c801da4 kernel32.LoadLibraryA + 0x2d
formMain.TfrmMain._LoadLibrary(???,"NQReport",("Software", "ЗАО «ТД «ПЕРЕКРЕСТОК»", "NQ", "User", "Owner", "NQ", "NumeroQuattro.Департамент", "C:\delphi\nq\NQ.ini", True, (18, 29376, 20997, 29384)),$17C26A0)
formMain.TfrmMain._LoadLibraries($17BB470,$17EFEE0,$17C26A0)
formMain.TfrmMain.Create(???)
:5207946c TApplication.CreateForm + $34
NQ.NQ
:7c816fd7 kernel32.RegisterWaitForInputIdle + 0x49

NQReport.dll лажанулась .. (впрочем, ее тоже не трогал)


 
clickmaker ©   (2008-10-21 12:24) [2]

а в секции initialization там есть что-нить?


 
Vlad Oshin ©   (2008-10-21 14:24) [3]

нет, ничего нет.
Все что возможно загнал в try except WriteToLog("ТУТ!!"); (да все вообще, почти каждую строчку)
Все прошел по F8-F7,
не пойму где ошибка..


 
Eraser ©   (2008-10-21 14:29) [4]

> [3] Vlad Oshin ©   (21.10.08 14:24)

в опциях компилятора Run time errors включи range checking и поработай с программой в разных режимах.
скорее всего что-то где-то явно портит память процесса.
возможно поможет выявить это место замена Free на FreeAndNil в спорных местах.


 
Vlad Oshin ©   (2008-10-21 15:26) [5]


> в опциях компилятора Run time errors включи range checking

включено

> Free на FreeAndNil в спорных местах.

заменил на Free и :=nil, во всех местах

ничего..
-----------------
переписал

{$IFDEF INLOG2}
procedure LogException(ExceptObj: TObject; ExceptAddr: Pointer; IsOS: Boolean);
var
 mmLog: String;
 ModInfo: TJclLocationInfo;
begin
 try
   ModInfo := GetLocationInfo(ExceptAddr);
   mmLog:=Format(
     #13#10+"Exception occured at $%p "+#13#10+
     "Module "%s""+#13#10+
     "Procedure "%s""+#13#10+
     "Unit "%s""+#13#10+
     "Line %d",
     [ModInfo.Address,
      ModInfo.UnitName,
      ModInfo.ProcedureName,
      ModInfo.SourceName,
      ModInfo.LineNumber]);
   WriteToLog(mmLog+" "+SysErrorMessage(GetLastError));
 Except
 end;
end;
{$ENDIF}


поменял порядок загрузки dll, теперь явно видно, что хромает Report, где бы не стояла - на ней ошибается

Try LoadLibrary |NQBasket|
----------------------------------------------------------------------------------------------------------------------- DateTime: 21.10.2008 15:15:07
NumeroQuattro.Департамент: module NQBasket.dll attach process
----------------------------------------------------------------------------------------------------------------------- DateTime: 21.10.2008 15:15:07
Try LoadLibrary |NQReport|
----------------------------------------------------------------------------------------------------------------------- DateTime: 21.10.2008 15:15:07
Exception occured at $7C812A5B Module "" Procedure "RaiseException" Unit "" Line 0 Не удается найти указанный файл
----------------------------------------------------------------------------------------------------------------------- DateTime: 21.10.2008 15:15:07
NumeroQuattro.Департамент: module NQReport.dll attach process


Отключил в ней возможности передачи отчета по почте
IdMessage, IdCoderHeader,IdAttachmentFile,IdText, idSMTP

Заработало.
Чем indy может так шалить?


 
Eraser ©   (2008-10-21 15:31) [6]

> [5] Vlad Oshin ©   (21.10.08 15:26)

скорее всего не все так просто. это самый страшный тип ошибки, она может возникать где угодно, при значительном изменении структуры кода (добавление/удаление какого либо модуля) может вообще, казалось бы, исчезнуть.
поищи в своем коде, касающимся Indy и писем ошибки, но вряд ли найдешь думаю.. ошибка в каком-то "левом" месте.. возможно при инициализации/загрузки чего то, imho с этой стороны копать надо.


 
clickmaker ©   (2008-10-21 15:59) [7]

> IdMessage, IdCoderHeader,IdAttachmentFile,IdText, idSMTP

смотри, что там может косячить в initialization


 
Petr V. Abramov ©   (2008-10-21 16:43) [8]

а uses sharemem в первых строках соит?


 
Vlad Oshin ©   (2008-10-21 17:38) [9]


> Petr V. Abramov ©   (21.10.08 16:43) [8]
> а uses sharemem в первых строках соит?

использую Fast Memory Manager 4.84



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.12.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.045 c
2-1225841336
Семен Кевларвестов
2008-11-05 02:28
2008.12.21
Не срабатывает кейсоинсенситивность в tDataSet.Locate


2-1226679594
smartleds
2008-11-14 19:19
2008.12.21
Подскажите плз как процедуру зоздания формы вызвать вручную


4-1202310065
lead-in
2008-02-06 18:01
2008.12.21
"Шифровка по Виндусовски"


9-1176034915
Tonich
2007-04-08 16:21
2008.12.21
Столкновение объектов в пространстве (шариков)


2-1226208105
Maksim
2008-11-09 08:21
2008.12.21
Как в поле memo1 вставить картинку?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский