Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Баг отладчика и побочный эффект с showmessage. [D7]


oxffff ©   (2007-07-26 11:53:00) 

Не буду темнить.

Ковыряясь в исходниках я наткнулся на очень полезные функции.
Назовем их Fast Mem Alloc.
А находятся они здесь Grids и используются там же.

function StackAlloc(Size: Integer): Pointer; register;

StackAlloc allocates a 'small' block of memory from the stack

procedure StackFree(P: Pointer); register;
StackFree pops the memory allocated by StackAlloc off the stack.

Вот упрощенный пример использования их функциональности

procedure a1;asm
pop eax;
sub esp,$10;
push eax;
end;

procedure a2;asm
pop eax;
add esp,$10;
push eax;
end;

procedure TForm1.Button1Click(Sender: TObject);
var a,b:integer;
begin
a1;
showmessage(inttostr(b));
showmessage(inttostr(a));
a2;
end;

Поставьте бряк на вызов a1. Запустите приложение и нажмите кнопку.  Далее нажмите на F8.
На showmessage вы не попадаете, хотя должны.Тоже самое на ASM коде при F8 на call a1

Это и есть выявленный недочет отладчика.



Теперь о странном эффекте showmessage


Продолжение здесь
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1185435238&n=0


Rouse_   (2007-07-27 12:04:00) [1]

я не прав - не там бряк поставил... :)


oxffff   (2007-07-27 11:23:00) [2]


> Rouse_ ©   (27.07.07 11:15) [3]
> Дельфя какая? Под 2007 все отрабатывает как надо...


Проверял на 7. На 2006 не проверял.

Вот добавление к отчету от sysop

Sysop OF: Reproduced with Delphi 2007.

Осталось выяснить кто прав.


Rouse_   (2007-07-27 11:15:00) [3]

Дельфя какая? Под 2007 все отрабатывает как надо...


oxffff   (2007-07-27 08:53:00) [4]

Отчет получил статус Open.


oxffff   (2007-07-26 15:02:00) [5]

Здесь сообщение о недочете.
http://qc.codegear.com/wc/qcmain.aspx?d=49593


Наверх

Титульная страница Поиск, карта сайта Написать письмо