Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.02.01;
Скачать: [xml.tar.bz2];

Вниз

Как отключить оптимизатор в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.006 c
2-1229403281
Съедобный
2008-12-16 07:54
2009.02.01
добавление записи в БД


3-1213956787
keymaster
2008-06-20 14:13
2009.02.01
Проблема с ODAC при работе с Oracle Instant Client


2-1229779239
Tinky
2008-12-20 16:20
2009.02.01
Как хранится размер окна в EXE


1-1207680923
@!!ex
2008-04-08 22:55
2009.02.01
Использование 7z


2-1229432563
Медвежонок Пятачок
2008-12-16 16:02
2009.02.01
Форма ActiveX





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский