Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.02.01;
Скачать: CL | DM;

Вниз

Как отключить оптимизатор в Delphi7   Найти похожие ветки 

 
pavel_guzhanov ©   (2008-12-08 10:04) [0]

Проблема в следующем: Отлаживаю программу, ставлю брекпоинты. Но при запуске почему-то некоторые брекпоинты игнорируются, хотя я ДОЛЖЕН на них попадать. Я так понимаю, что это оптимизатор решил, что мне нужно, а что нет, хотя логику его понять не могу. Можно ли как-то отключить оптимизатор?


 
@!!ex ©   (2008-12-08 10:14) [1]

Врядли в оптимизаторе дело.
Попробуй сделать логирование перед брейкпоинтом и после.
Скорее всего по каким-то причинам, код под брейком не выполняется вообще.


 
pavel_guzhanov ©   (2008-12-08 10:16) [2]

да. именно, он не выполняется... Брекпойнты с крестиком...


 
Rouse_ ©   (2008-12-08 10:21) [3]

В свойствах проекта, компилятор->кодогенерация-> сними болт с оптимизации...


 
Ega23 ©   (2008-12-08 10:41) [4]


> В свойствах проекта, компилятор->кодогенерация-> сними болт
> с оптимизации...


И билд потом сделать не забудь!


 
pavel_guzhanov ©   (2008-12-08 10:59) [5]

не помогло :о(

Вот кусок программы (русские буквы при копировании получились кракозябрами, исправлять лень, т.к. это непринципиально) В этом кусочке часть строк выполняется, часть нет. Те, которые не выполняются я отметил:

   with ClBnkDataModule, SL do
   begin
     Add("ÑåêöèÿÄîêóìå&#2 37;ò=Ïëàòåæíîå ïîðó÷åíèå");
     Add("Íîìåð=" +
       Copy(Trim(iqrBankDocDOC_NAME.AsString), Length(iqrBankDocDOC_NAME.AsString)-3, 4));
     StatusBar1.Panels[1].Text := "Îáðàáàòûâàåòñ& #255; ïëàòåæíîå ïîðó÷åíèå ¹ " +
       iqrBankDocDOC_NAME.AsString + "...";
     StatusBar1.Update;
     Add("Äàòà=" + iqrBankDocDOC_DATE.AsString);
     Add("Ñóììà=" + iqrBankDocCALC_SUM_NUM.AsString);
     Add("ÏëàòåëüùèêÑ÷&#2 29;ò=" + Trim(iqrBankDocCOLUMN7.AsString));
     Add("ÏëàòåëüùèêÈÍ&#2 05;=" + iqrBankDocCOLUMN5.AsString);
     Add("Ïëàòåëüùèê=ÈÍ&# 205; " + iqrBankDocCALC_INN_FOND.AsString);
     Add("Ïëàòåëüùèê1=" + Trim(iqrBankDocCOLUMN4.AsString));
     Add("ÏëàòåëüùèêÐà&#2 41;÷Ñ÷åò=" + iqrBankDocCOLUMN7.AsString);
     iqrBankLst.Open;
     BIK:=TRIM(iqrBankDocBIC.AsString);
     FIO:=Trim(iqrBankLst.FieldByName("FIO").AsString);
     if Pos("Ã.", AnsiUpperCase(iqrBankDocLOOK_BANK.AsString)) > 0 then
     begin
       Add("ÏëàòåëüùèêÁà&#2 37;ê1=" +
         Trim(
           Copy(iqrBankDocLOOK_BANK.AsString, 1,
             Pos("Ã.", AnsiUpperCase(iqrBankDocLOOK_BANK.AsString)) - 1)));
       Add("ÏëàòåëüùèêÁà&#2 37;ê2=" + // вот эта строка не выполняется
         Trim(
           Copy(iqrBankDocLOOK_BANK.AsString,
             Pos("Ã.", AnsiUpperCase(iqrBankDocLOOK_BANK.AsString)), 65535)));
     end
     else
       Add("ÏëàòåëüùèêÁà&#2 37;ê1=" + iqrBankDocLOOK_BANK.AsString); // вот эта строка не выполняется
     Add("ÏëàòåëüùèêÁÈ&#2 02;=" + Trim(iqrBankDocLOOK_BIC.AsString)); // вот эта строка не выполняется
     Add("ÏëàòåëüùèêÊî&#2 40;ñ÷åò=" + Trim(iqrBankDocLOOK_CORR_ACCN.AsString));
     if Trim(iqrBankDocCORR_ACCN_SECTION.AsString)<>"" then
       Add("&#207;&#238;&#235;&#243;&#247;&#224;&#242;&#229;&#235;&#252;&#209;&#247;&#2 29;&#242;=" + Trim(iqrBankDocCORR_ACCN_SECTION.AsString))
     else
     begin
       if pos("/", iqrBankLst.FieldByName("PLACE_ACCOUNT").AsString)>0 then // вот эта строка не выполняется
         Add("&#207;&#238;&#235;&#243;&#247;&#224;&#242;&#229;&#235;&#252;&#209;&#247;&#2 29;&#242;=" + copy(iqrBankLst.FieldByName("PLACE_ACCOUNT").AsString, 1, pos("/", iqrBankLst.FieldByName("PLACE_ACCOUNT").AsString)-1))
       else
         Add("&#207;&#238;&#235;&#243;&#247;&#224;&#242;&#229;&#235;&#252;&#209;&#247;&#2 29;&#242;=" + iqrBankLst.FieldByName("PLACE_ACCOUNT").AsString);// вот эта строка не выполняется
     end;
     Add("&#207;&#238;&#235;&#243;&#247;&#224;&#242;&#229;&#235;&#252;&#200;&#205;&#2 05;=" + Trim(iqrBankDocP_INN.AsString));// вот эта строка не выполняется


От чего такое может быть, и как заставить их выполняться?


 
shlst   (2008-12-08 11:23) [6]

if <переменная, изменяемая в коде который не хочет работать>=2 then beep;
обычно хватает :)


 
Rouse_ ©   (2008-12-08 11:32) [7]

Скорее у тебя просто поехал отладчик, такое иногда бывает, т.е. точки останова не соответствуют исходному коду. Обычно они сдвигаются вверх...
Не помню правда как такое лечиться, вроде как служебные символы что-ли вытирать нужно...


 
pasha_golub ©   (2008-12-08 12:26) [8]

{$D+} {$L+} перед проблемным местом и Build


 
pasha_golub ©   (2008-12-08 12:27) [9]

{$D+} {$L+} перед проблемным местом и Build



Страницы: 1 вся ветка

Текущий архив: 2009.02.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
2-1229535561
smartleds
2008-12-17 20:39
2009.02.01
Ошибка при сохранении файла


15-1228848341
Керк
2008-12-09 21:45
2009.02.01
SSL и Apache


15-1228367482
boriskb
2008-12-04 08:11
2009.02.01
Задача по информатике. 2-ой класс


2-1229697638
koha!
2008-12-19 17:40
2009.02.01
HexToBinary To Integer - проблема с преобразованием


2-1229423666
9899100
2008-12-16 13:34
2009.02.01
Property