Форум: "Начинающим";
Текущий архив: 2013.12.29;
Скачать: [xml.tar.bz2];
ВнизНе работает отладка Найти похожие ветки
← →
__meat__ © (2013-03-07 01:50) [0]Принцип проги такой что загружаются 2 библиотеки через Import a type library и в последствии к ним адресуются запросы, ну это не так важно. Проблема в следующем. Программа компилируется нормально, без ошибок, но как только консоль появляется то сразу же закрывается. Как я понял до кода дело вообще не доходит, в стеке вызовов только "process is not accessible". Что делать?)
З.Ы. платформа Delphi 2009 от Rad Studio.
← →
Германн © (2013-03-07 02:31) [1]
> Что делать?
Использовать все возможности представляемые отладчиком.
← →
__meat__ © (2013-03-07 03:41) [2]
> Использовать все возможности представляемые отладчиком.
А поконкретнее? Ну трассировку я пробовал и так и эдак, опять таки код сам правильный должен быть, может в самом делфи че-то не доделал я.
← →
Германн © (2013-03-07 03:53) [3]
> А поконкретнее? Ну трассировку я пробовал и так и эдак
Вот тут как раз более разумно будет привести сам код и рассказать как в отладке этого кода использовался отладчик.
Ну а заодно и рассказать как в "стеке вызовов" появилось "process is not accessible" :)
← →
__meat__ © (2013-03-07 08:03) [4]Вот сам код:
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"
>
после первого же запуска и появилось.
← →
__meat__ © (2013-03-07 08:09) [5]Могу еще 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)
как видите, никаких следов работы кода:(
← →
Ega23 © (2013-03-07 08:36) [6]Серверы-то зарегистрированы?
← →
__meat__ © (2013-03-07 08:44) [7]Какие серверы?
← →
Ega23 © (2013-03-07 09:17) [8]
> Какие серверы?
СОМ-серверы. В которых твои парадигмы, леммы и грамматики сидят.
← →
__meat__ © (2013-03-07 16:14) [9]
> СОМ-серверы. В которых твои парадигмы, леммы и грамматики
> сидят.
А хз, может и зарегистрированы, а где это делается?
← →
Игорь Шевченко © (2013-03-07 16:56) [10]F7
← →
__meat__ © (2013-03-07 18:09) [11]
> F7
причем тут F7, это ж трассировка?
← →
Rouse_ © (2013-03-07 18:22) [12]
> загружаются 2 библиотеки через Import a type library
библиотеки твои? Все выглядит как работа проактивки, либо защиты со стороны подгружаемых библиотек детектирующих отладчик.
← →
__meat__ © (2013-03-07 19:18) [13]
> библиотеки твои?
>
Ну да, мои.
и как обойти эту защиту?
← →
Rouse_ © (2013-03-07 19:44) [14]Если твои - то защиты по логике быть не должно, иначе ты о ней бы знал.
Отключи ка антивирус - может он срывает процесс.
← →
__meat__ © (2013-03-07 20:07) [15]
> Отключи ка антивирус - может он срывает процесс.
Отключил - не помогло, все так же.
← →
__meat__ © (2013-03-07 20:12) [16]
> Если твои - то защиты по логике быть не должно, иначе ты о ней бы знал.
Ну как мои) я их сам не создавал уж. Это два dll файла одной установленной заранее программы, в папке bin которые.
← →
Rouse_ © (2013-03-07 20:20) [17]
> __meat__ © (07.03.13 20:12) [16]
Ага, это уже другой коленкор.
Если запустить твою консоль без отладчика - работает?
← →
__meat__ © (2013-03-07 20:37) [18]В принципе так же: консоль запускается и закрывается, но в этом случае это происходит в разы быстрее. Если при F9 там хоть можно успеть увидеть что консоль пустая, то без отладчика вообще за считанные милисекунды происходит. И event log кстати в таком случае пустой.
← →
Rouse_ © (2013-03-07 20:44) [19]Значит библиотекам что-то не хватает (имхо).
← →
__meat__ © (2013-03-08 02:10) [20]Методом тыка поймал таки. Закомментировал оператор halt в последнем цикле и.. все что должно было выйти на консоль вышло. И само сообщение "cannot load Component Object Model(COM) library" и результаты выполнения программы. Правда из за проблем с юникодом каракули отобразились вместо кириллицы. Но все же непонятно, зачем этот halt там нужен был...
← →
Германн © (2013-03-08 02:19) [21]
> Методом тыка поймал таки. Закомментировал оператор halt
> в последнем цикле и.. все что должно было выйти на консоль
> вышло. И само сообщение "cannot load Component Object Model(COM)
> library" и результаты выполнения программы. Правда из за
> проблем с юникодом каракули отобразились вместо кириллицы.
> Но все же непонятно, зачем этот halt там нужен был
http://www.gunsmoker.ru/2010/05/90.html
(c)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.12.29;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.002 c