Форум: "Прочее";
Текущий архив: 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("ÑåêöèÿÄîêóìå 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("ÏëàòåëüùèêÑ÷ 29;ò=" + Trim(iqrBankDocCOLUMN7.AsString));
Add("ÏëàòåëüùèêÈÍ 05;=" + iqrBankDocCOLUMN5.AsString);
Add("Ïëàòåëüùèê=ÈÍ&# 205; " + iqrBankDocCALC_INN_FOND.AsString);
Add("Ïëàòåëüùèê1=" + Trim(iqrBankDocCOLUMN4.AsString));
Add("ÏëàòåëüùèêÐà 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("ÏëàòåëüùèêÁà 37;ê1=" +
Trim(
Copy(iqrBankDocLOOK_BANK.AsString, 1,
Pos("Ã.", AnsiUpperCase(iqrBankDocLOOK_BANK.AsString)) - 1)));
Add("ÏëàòåëüùèêÁà 37;ê2=" + // вот эта строка не выполняется
Trim(
Copy(iqrBankDocLOOK_BANK.AsString,
Pos("Ã.", AnsiUpperCase(iqrBankDocLOOK_BANK.AsString)), 65535)));
end
else
Add("ÏëàòåëüùèêÁà 37;ê1=" + iqrBankDocLOOK_BANK.AsString); // вот эта строка не выполняется
Add("ÏëàòåëüùèêÁÈ 02;=" + Trim(iqrBankDocLOOK_BIC.AsString)); // вот эта строка не выполняется
Add("ÏëàòåëüùèêÊî 40;ñ÷åò=" + Trim(iqrBankDocLOOK_CORR_ACCN.AsString));
if Trim(iqrBankDocCORR_ACCN_SECTION.AsString)<>"" then
Add("Ïîëó÷àòåëüÑ÷ 29;ò=" + Trim(iqrBankDocCORR_ACCN_SECTION.AsString))
else
begin
if pos("/", iqrBankLst.FieldByName("PLACE_ACCOUNT").AsString)>0 then // вот эта строка не выполняется
Add("Ïîëó÷àòåëüÑ÷ 29;ò=" + copy(iqrBankLst.FieldByName("PLACE_ACCOUNT").AsString, 1, pos("/", iqrBankLst.FieldByName("PLACE_ACCOUNT").AsString)-1))
else
Add("Ïîëó÷àòåëüÑ÷ 29;ò=" + iqrBankLst.FieldByName("PLACE_ACCOUNT").AsString);// вот эта строка не выполняется
end;
Add("Ïîëó÷àòåëüÈÍ 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