Текущий архив: 2013.03.22;
Скачать: CL | DM;
Вниз
Eureka ловит ошибку при закрытии прораммы с TidTelnet. Найти похожие ветки
← →
AV © (2012-04-27 09:46) [0]procedure TfrmNGN_APPL.btnCOnnectClick(Sender: TObject);
begin
IdTelnet1.Host := sHost;
IdTelnet1.Port := sPort;
IdTelnet1.Connect(3000);
if IdTelnet1.Connected then
IdTelnet1.WriteLn(sCmd);
end;
procedure TfrmNGN_APPL.IdTelnet1DataAvailable(Sender: TIdTelnet; const Buffer: String);
begin
Memo1.Lines.Add(Buffer);
end;
procedure TfrmNGN_APPL.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
// Sleep(100); // ошибка, по мнению Eureka. И нет ошибки, если ее модули отключить.
CanClose := True;
end;
Ошибка (AV) фиксируется такая
2.5 Type : EIdClosedSocket
2.6 Message : Disconnected.
; IdIOHandlerSocket.TIdIOHandlerSocket.Recv (Line=0 - Offset=0)
; -------------------------------------------------------------
004B34BC call IdSocketHandle.TIdSocketHandle.Recv
004B34C1 mov ebx, eax
004B34C3 jmp IdIOHandlerSocket.TIdIOHandlerSocket.Recv
004B34C5 lea edx, [ebp-$04]
004B34C8 mov eax, dword ptr [$4C019C]
004B34CD call System.LoadResString
004B34D2 mov ecx, [ebp-$04]
004B34D5 mov dl, $01
004B34D7 mov eax, dword ptr [EIdClosedSocket]
004B34DC call SysUtils.Exception.Create
004B34E1 call System._RaiseExcept ; <-- EXCEPTION
Call Stack Information:
---------------------------------------------------------------------------------------
|Address |Module |Unit |Class |Procedure/Method |Line |
---------------------------------------------------------------------------------------
|*Exception Thread: ID=2404; Priority=0; Class=TIdTelnetReadThread |
|-------------------------------------------------------------------------------------|
|004B34E1|NGN_APPL.exe| | | | |
|7C9010E0|ntdll.dll | | |RtlLeaveCriticalSection | |
|-------------------------------------------------------------------------------------|
|Calling Thread: ID=1496; Priority=0; Class=; [Main] |
|-------------------------------------------------------------------------------------|
|004B714F|NGN_APPL.exe|uMainApplic.pas|TfrmNGN_APPL|btnCOnnectClick |50[3]|
|7E36BFFB|user32.dll | | |NotifyWinEvent | |
|7E36BFF3|user32.dll | | |NotifyWinEvent | |
|7C90ECBA|ntdll.dll | | |RtlMultiByteToUnicodeN | |
|7C90EB94|ntdll.dll | | |RtlAnsiStringToUnicodeString| |
|7C90D328|ntdll.dll | | |ZwFindAtom | |
|7E36F642|user32.dll | | |CallWindowProcA | |
|7C9010E0|ntdll.dll | | |RtlLeaveCriticalSection | |
|7E36B8FE|user32.dll | | |SendMessageW | |
|7E36B8BA|user32.dll | | |SendMessageW | |
|7E36F658|user32.dll | | |CallWindowProcA | |
|7E36F642|user32.dll | | |CallWindowProcA | |
|7E36F891|user32.dll | | |CallNextHookEx | |
|7E3694DA|user32.dll | | |GetCapture | |
|7E3696C2|user32.dll | | |DispatchMessageA | |
|7E3696B8|user32.dll | | |DispatchMessageA | |
|004B75DB|NGN_APPL.exe|NGN_APPL.dpr | | |15[3]|
|7C90DCB8|ntdll.dll | | |ZwSetInformationThread | |
|-------------------------------------------------------------------------------------|
| |
|Running Thread: ID=1496; Priority=0; Class=; [Main] |
|-------------------------------------------------------------------------------------|
|7C90DF58|ntdll.dll | | |ZwWaitForSingleObject | |
|7C90DF4E|ntdll.dll | | |ZwWaitForSingleObject | |
|7C918B1E|ntdll.dll | | |RtlpWaitForCriticalSection | |
|7C918A97|ntdll.dll | | |RtlpWaitForCriticalSection | |
|7C901000|ntdll.dll | | |RtlEnterCriticalSection | |
|004B75E0|NGN_APPL.exe|NGN_APPL.dpr | | |16[4]|
|7C90DCB8|ntdll.dll | | |ZwSetInformationThread | |
---------------------------------------------------------------------------------------
← →
AV © (2012-04-27 09:51) [1]еще проще вызвать, написав
procedure TfrmNGN_APPL.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
IdTelnet1.Disconnect;
да, а если написать
procedure TfrmNGN_APPL.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Sleep( XX );
то не всегда ловится ошибка Эврикой.
Indy 9
← →
Германн © (2012-04-27 14:41) [2]А обратиться в техподдержку Эврики что мешает?
← →
Rouse_ © (2012-04-27 15:40) [3]А при чем тут еврика?
тебе-же адрес ошибки показан (004B34E1 call System._RaiseExcept), вот и становись на него бряком.
Если бряк сработал, значит реально было поднято исключение, тут и думай кто зачем и почему.
← →
turbouser © (2012-04-27 15:46) [4]И так все ясно - EIdClosedSocket
← →
Rouse_ © (2012-04-27 15:52) [5]Ясно то оно ясно, только не ясно зачем его поднимают :) Вот это и есть первоначальная задача для топикстартера.
Страницы: 1 вся ветка
Текущий архив: 2013.03.22;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.07 c