Форум: "Прочее";
Текущий архив: 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.042 c