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

Вниз

Невыход на точку останова во время отладки!!!   Найти похожие ветки 

 
terra0   (2004-06-10 20:09) [0]

Много лет программирую на Delphi, но наверное и на старуху бывает проруха.
В одной из своих программ недавно обнаружил глючок - неправильное определение переменной - не суть важно. Открываю проект, в процедуре (открытие hex-файла через OpenFileDialog) ставлю точку останова, запускаю на выполнение - и ничего программа пролетает точку останова, как будто ее нет. Возможно где-то в опциях отладчика или самого проекта, но я вроде все просмотрел - нормально. Даже Delphi переустановил с перепуга - результат тот-же.
Подскажите что делать?!!


 
lena19   (2004-06-10 20:22) [1]

поставить больше точек останова
настройки дельфи мона проверить простой прогой чем проще тем лучше


 
terra0   (2004-06-10 20:25) [2]

пробовал, хоть 5 штук, в простых прогах все нормально - хоть головой о стенку


 
Petr V. Abramov ©   (2004-06-10 20:25) [3]

Строку мог выкинуть оптимайзер - то есть просто не сгенерить для нее код


 
terra0   (2004-06-10 20:34) [4]

дело в том что я пробовал ставить на другие строки в теле функции - бесполезно!!! Вот кусок кода
procedure TFormMain.SpeedButtonOpenClick(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
 case OpenDialog1.FilterIndex of
  1: OpenHexFile(OpenDialog1.FileName);
  2: OpenBinFile(OpenDialog1.FileName);
 end;
end;
end;

function TFormMain.OpenHexFile(fName:string):Boolean;
var
a,b,btc,adr:Integer;
Memory:TMemoryStream;
str,stp:Boolean;
begin
ClearBuff;
StartTime:=Time;
Memory := TMemoryStream.Create;
try
 Memory.LoadFromFile(fName);
 Memory.ReadBuffer(pBuff,Memory.Size);
finally
 Memory.Free;
end;
a:=0;
str:=false;
stp:=false;
while a<Length(pBuff) do
begin
 if  pBuff[a]=ord(":") then
 begin
  btc:=StrToInt("$"+chr(pBuff[a+1])+chr(pBuff[a+2]));
  adr:=StrToInt("$"+chr(pBuff[a+3])+chr(pBuff[a+4])+chr(pBuff[a+5])+chr(pBuff[a+6]));
  if adr=0 then str:=true;
  if str then
  begin
   if (StrToInt("$"+chr(pBuff[a+7])+chr(pBuff[a+8])))=1 then stp:=true;
   if not(stp)then BuffLen:=adr+btc;
   for b:=0 to btc-1 do Buff[adr+b]:=StrToInt("$"+chr(pBuff[a+9+(b*2)])+chr(pBuff[a+9+(b*2)+1]));
  end;
 end;
 inc(a);
end;
ShowBuff;
ShowKey(1);
EditLAdr.Text:=IntToHex(BuffLen-1,6);
StopTime:=Time;
EditTime.Text:=TimeToStr(StopTime-StartTime);
result:=true;
end;//*

Ставлю в OpenHexFile (в любом месте) - бесполезно!!!
Хотя в теле функции ClearBuff - пожалуйста. Не знаю что делать.


 
Petr V. Abramov ©   (2004-06-10 21:19) [5]

А это все не в DLL случайно происходит?


 
pasha_golub ©   (2004-06-10 22:09) [6]

Уважаемый друг, бывает, что чужие компоненты изменяют кой-чего...

Короче, попробуйте вот что,
в начале проекта либо в начале модуля, проставте такие директивы:

{$D+} {$L+}

ЗЫ Я так делаю постояннно, но однако не знаю, какой именно компонент "облегчил" мне жизнь. Удачи :-)


 
RealRascal ©   (2004-06-10 22:54) [7]

проверьте, действительно ли выполнение алгоритма проходит через эту точку. Например, с помощью Showmessage()


 
Profi ©   (2004-06-10 23:17) [8]

Чтобы delphi понял точку, нужно запускать компилятор F4, а не F9!



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

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

Наверх




Память: 0.48 MB
Время: 0.023 c
3-1085991926
Mva
2004-05-31 12:25
2004.06.27
Access


14-1086883820
BlackLord2003
2004-06-10 20:10
2004.06.27
Resourcestring


14-1086540528
iZEN
2004-06-06 20:48
2004.06.27
Документы в электронном виде, или как сохранить книгу.


1-1087227284
Mielofon
2004-06-14 19:34
2004.06.27
EhLib 3.2, Delphi 7 и Windows Xp, 98 глупая проблема


1-1087208125
alexa
2004-06-14 14:15
2004.06.27
Выделение в listbox