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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.034 c
1-1086796577
han
2004-06-09 19:56
2004.06.27
работа с датой


3-1086267642
Jiny
2004-06-03 17:00
2004.06.27
Возможно проблема с TFrame


10-1014009500
Dima Kalugin
2002-02-18 08:18
2004.06.27
Где взять готовые Корба объекты


4-1084875724
sachem
2004-05-18 14:22
2004.06.27
Как сделать, что бы при закрытии формы вы давалось сообщение


1-1086850034
Konstantin
2004-06-10 10:47
2004.06.27
Помогите пожалуйста с Excel, - <invalid variant operation>





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский