![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Баг отладчика и побочный эффект с 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