Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не работает отладка


Страницы:   1 2

__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]


> Использовать все возможности представляемые отладчиком.


А поконкретнее? Ну трассировку я пробовал  и так и эдак, опять таки код сам правильный должен быть, может в самом делфи че-то не доделал я.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо