![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не работает отладка
__meat__ © (2013-03-07 01:50:00)Принцип проги такой что загружаются 2 библиотеки через Import a type library и в последствии к ним адресуются запросы, ну это не так важно. Проблема в следующем. Программа компилируется нормально, без ошибок, но как только консоль появляется то сразу же закрывается. Как я понял до кода дело вообще не доходит, в стеке вызовов только "process is not accessible". Что делать?)
З.Ы. платформа Delphi 2009 от Rad Studio.
Германн (2013-03-08 02:19:00) [1]
> Методом тыка поймал таки. Закомментировал оператор halt
> в последнем цикле и.. все что должно было выйти на консоль
> вышло. И само сообщение 'cannot load Component Object Model(COM)
> library' и результаты выполнения программы. Правда из за
> проблем с юникодом каракули отобразились вместо кириллицы.
> Но все же непонятно, зачем этот halt там нужен был
http://www.gunsmoker.ru/2010/05/90.html
(c)
__meat__ (2013-03-08 02:10:00) [2]Методом тыка поймал таки. Закомментировал оператор halt в последнем цикле и.. все что должно было выйти на консоль вышло. И само сообщение 'cannot load Component Object Model(COM) library' и результаты выполнения программы. Правда из за проблем с юникодом каракули отобразились вместо кириллицы. Но все же непонятно, зачем этот halt там нужен был...
Rouse_ (2013-03-07 20:44:00) [3]Значит библиотекам что-то не хватает (имхо).
__meat__ (2013-03-07 20:37:00) [4]В принципе так же: консоль запускается и закрывается, но в этом случае это происходит в разы быстрее. Если при F9 там хоть можно успеть увидеть что консоль пустая, то без отладчика вообще за считанные милисекунды происходит. И event log кстати в таком случае пустой.
Rouse_ (2013-03-07 20:20:00) [5]
> __meat__ © (07.03.13 20:12) [16]
Ага, это уже другой коленкор.
Если запустить твою консоль без отладчика - работает?
__meat__ (2013-03-07 20:12:00) [6]
> Если твои - то защиты по логике быть не должно, иначе ты о ней бы знал.
Ну как мои) я их сам не создавал уж. Это два dll файла одной установленной заранее программы, в папке bin которые.
__meat__ (2013-03-07 20:07:00) [7]
> Отключи ка антивирус - может он срывает процесс.
Отключил - не помогло, все так же.
Rouse_ (2013-03-07 19:44:00) [8]Если твои - то защиты по логике быть не должно, иначе ты о ней бы знал.
Отключи ка антивирус - может он срывает процесс.
__meat__ (2013-03-07 19:18:00) [9]
> библиотеки твои?
>
Ну да, мои.
и как обойти эту защиту?
Rouse_ (2013-03-07 18:22:00) [10]
> загружаются 2 библиотеки через Import a type library
библиотеки твои? Все выглядит как работа проактивки, либо защиты со стороны подгружаемых библиотек детектирующих отладчик.
__meat__ (2013-03-07 18:09:00) [11]
> F7
причем тут F7, это ж трассировка?
Игорь Шевченко (2013-03-07 16:56:00) [12]F7
__meat__ (2013-03-07 16:14:00) [13]
> СОМ-серверы. В которых твои парадигмы, леммы и грамматики
> сидят.
А хз, может и зарегистрированы, а где это делается?
Ega23 (2013-03-07 09:17:00) [14]
> Какие серверы?
СОМ-серверы. В которых твои парадигмы, леммы и грамматики сидят.
__meat__ (2013-03-07 08:44:00) [15]Какие серверы?
Ega23 (2013-03-07 08:36:00) [16]Серверы-то зарегистрированы?
__meat__ (2013-03-07 08:09:00) [17]Могу еще event log привести.
Thread Start: Thread ID: 15796. Process Project1.exe (12656)
Process Start: C:\Users\Roma\Desktop\МА2\Project1.exe. Base Address: $00400000. Process Project1.exe (12656)
Module Load: Project1.exe. Has Debug Info. Base Address: $00400000. Process Project1.exe (12656)
Module Load: ntdll.dll. No Debug Info. Base Address: $77560000. Process Project1.exe (12656)
Module Load: KERNEL32.dll. No Debug Info. Base Address: $75420000. Process Project1.exe (12656)
Module Load: KERNELBASE.dll. No Debug Info. Base Address: $76650000. Process Project1.exe (12656)
Module Load: OLEAUT32.dll. No Debug Info. Base Address: $74CA0000. Process Project1.exe (12656)
Module Load: ole32.dll. No Debug Info. Base Address: $750F0000. Process Project1.exe (12656)
Module Load: msvcrt.dll. No Debug Info. Base Address: $74F20000. Process Project1.exe (12656)
Module Load: GDI32.dll. No Debug Info. Base Address: $752B0000. Process Project1.exe (12656)
Module Load: USER32.dll. No Debug Info. Base Address: $74D80000. Process Project1.exe (12656)
Module Load: ADVAPI32.dll. No Debug Info. Base Address: $74E80000. Process Project1.exe (12656)
Module Load: SECHOST.dll. No Debug Info. Base Address: $75530000. Process Project1.exe (12656)
Module Load: RPCRT4.dll. No Debug Info. Base Address: $76A50000. Process Project1.exe (12656)
Module Load: SspiCli.dll. No Debug Info. Base Address: $74C40000. Process Project1.exe (12656)
Module Load: CRYPTBASE.dll. No Debug Info. Base Address: $74C30000. Process Project1.exe (12656)
Module Load: LPK.dll. No Debug Info. Base Address: $75340000. Process Project1.exe (12656)
Module Load: USP10.dll. No Debug Info. Base Address: $76370000. Process Project1.exe (12656)
Module Load: MSIMG32.dll. No Debug Info. Base Address: $72010000. Process Project1.exe (12656)
Module Load: VERSION.dll. No Debug Info. Base Address: $71B80000. Process Project1.exe (12656)
Module Load: COMCTL32.dll. No Debug Info. Base Address: $731B0000. Process Project1.exe (12656)
Module Load: IMM32.dll. No Debug Info. Base Address: $766A0000. Process Project1.exe (12656)
Module Load: MSCTF.dll. No Debug Info. Base Address: $768C0000. Process Project1.exe (12656)
Module Load: nvinit.dll. No Debug Info. Base Address: $71D20000. Process Project1.exe (12656)
Module Load: detoured.dll. No Debug Info. Base Address: $0F000000. Process Project1.exe (12656)
Module Load: nvd3d9wrap.dll. No Debug Info. Base Address: $727A0000. Process Project1.exe (12656)
Module Load: SETUPAPI.dll. No Debug Info. Base Address: $75580000. Process Project1.exe (12656)
Module Load: CFGMGR32.dll. No Debug Info. Base Address: $76B40000. Process Project1.exe (12656)
Module Load: DEVOBJ.dll. No Debug Info. Base Address: $75550000. Process Project1.exe (12656)
Module Load: nvdxgiwrap.dll. No Debug Info. Base Address: $72760000. Process Project1.exe (12656)
Module Load: VKSaver3.dll. No Debug Info. Base Address: $71D00000. Process Project1.exe (12656)
Module Load: UxTheme.dll. No Debug Info. Base Address: $726B0000. Process Project1.exe (12656)
Module Load: saHook.dll. No Debug Info. Base Address: $675F0000. Process Project1.exe (12656)
Module Load: AnvirHook.dll. No Debug Info. Base Address: $10000000. Process Project1.exe (12656)
Module Load: SHELL32.dll. No Debug Info. Base Address: $75720000. Process Project1.exe (12656)
как видите, никаких следов работы кода:(
__meat__ (2013-03-07 08:03:00) [18]Вот сам код:
uses
SysUtils,
ActiveX,
LEMMATIZERLib_TLB in '..\..\Documents\RAD Studio\6.0\Imports\LEMMATIZERLib_TLB.pas',
AGRAMTABLib_TLB in '..\..\Documents\RAD Studio\6.0\Imports\AGRAMTABLib_TLB.pas';
procedure TestRusLemmatizer(word : string);
var RusLemmatizer : ILemmatizer;
ParadigmCollection : IParadigmCollection;
Paradigm : IParadigm;
RusGramTab : IGramTab;
OneAncode, SrcAncodes : string;
i,j,n : integer;
begin
// loading morphological dicitonary
RusLemmatizer := CoLemmatizerRussian.Create;
if (RusLemmatizer = nil) then
begin
writeln('cannot load lemmatizer');
halt(1);
end;
RusLemmatizer.LoadDictionariesRegistry();
// loading table of gram-codes
RusGramTab := CoRusGramTab.Create;
if (RusGramTab = nil) then
begin
writeln('cannot load table for grammatical codes');
halt(1);
end;
RusGramTab.Load;
word:='мыла';
ParadigmCollection := RusLemmatizer.CreateParadigmCollectionFromForm(word, 1, 1);
n:=ParadigmCollection.Count;
if (ParadigmCollection.Count = 0) then
begin
writeln('not found');
exit;
end;
writeln('характеристики слова "',word, '":');
for j:=0 to ParadigmCollection.Count-1 do
begin
Paradigm := ParadigmCollection.Item[j];
writeln(' {');
writeln(' лемма = ',Paradigm.Norm);
writeln(' Id = ',Paradigm.ParadigmID);
write(' граммемы = ');
i:=1;
SrcAncodes := Paradigm.SrcAncode;
while i < Length(SrcAncodes) do
begin
OneAncode := Copy(SrcAncodes,i,2);
write(RusGramTab.GetPartOfSpeechStr( RusGramTab.GetPartOfSpeech(OneAncode) ));
write(' ');
write(RusGramTab.GrammemsToStr( RusGramTab.GetGrammems(OneAncode) ));
write('; ');
inc (i, 2);
end;
writeln;
writeln(' }');
end;
end;
var hr : HRESULT;
begin
try
hr := CoInitialize(nil);
if (hr <> S_OK) then
begin
writeln('cannot load Component Object Model(COM) library');
halt(1);
end;
TestRusLemmatizer('стать');
CoUninitialize();
except
writeln('an exception occurred!');
end;
>
> как в "стеке вызовов" появилось "process is not accessible"
>
после первого же запуска и появилось.
Германн (2013-03-07 03:53:00) [19]
> А поконкретнее? Ну трассировку я пробовал и так и эдак
Вот тут как раз более разумно будет привести сам код и рассказать как в отладке этого кода использовался отладчик.
Ну а заодно и рассказать как в "стеке вызовов" появилось "process is not accessible" :)
__meat__ (2013-03-07 03:41:00) [20]
> Использовать все возможности представляемые отладчиком.
А поконкретнее? Ну трассировку я пробовал и так и эдак, опять таки код сам правильный должен быть, может в самом делфи че-то не доделал я.