Page 1 of 1

Stealth Pascal debugger

Posted: 14.11.2014 11:06
by Maxwell
Что мне не нравится.
1. Это скорее не баг, а жуткое неудобство. Нельзя посмотреть значения параметров объекта. Т.е. допустим у нас есть некий тип Tfoo

Code: Select all

type
TFoo = record
X,Y: Integer;
A: TBar;
end;
Такой объект при отладке выглядит как (0,0,[]), что есть совсем не информативно.

2. С завидной регулярность отладчик вообще перестает адекватно работать. На каждый step into он мне показывает, что выполняет начало скрипта, хотя по факту где-то в процедуре. И так до перезапуска стелса.

3. Посое остановки отладки стрелка текущей выполняемой строки остается.
4. При компиляции скрипта с uses unit; может говорить о не существующих ошибках в модуле, хотя ошибка в самом скрипте. Пример могу привести.

Re: Stealth Pascal debugger

Posted: 14.11.2014 12:17
by Vizit0r
1) Delphi показывает так же. Другой нормальный режим показа я с трудом представляю. Имена полей из записи я показать не могу, только их значения. Их на этапе выполнения уже нету, этих имен.
2) как повторить?
3) обновление прикручу, хотя достаточно кликнуть мышкой где-то в редакторе.
4) приведи.

Re: Stealth Pascal debugger

Posted: 14.11.2014 15:55
by Maxwell
1. Ну я конечно могу придумать вынимание метаданных типа из кода... Но ладно. Delphi уже лет 10 не пользовал и точно не помню как там выглядит дебаггер, по этому вопрос снимается.
2. Закономерности не нашел пока. Можно договориться и попробовать отловить это вместе. В общих чертах это выглядит так:
a. открывакм стелс, клиент из него и скрипт в редакторе. В скрипте есть uses на pas файл.
b. редактируем скрипт, сохраняем, ставим brakepoint в какой-либо прцедуре скрипта, запускаем отладку.
c. brakepoint отрабатывает, делаем 2-3 шага и жмем stop.
d. повторяем пункты b-c несколько раз, после чего наблюдаем описанную выше картину.
3. Ok.
4.
файл test.sc

Code: Select all

Program Test;
uses Foo;
var 
    a: Integer;
begin
    a = 10; 
end.
файл foo.pas

Code: Select all

unit Foo;

interface
	procedure Foo(a: Integer);

implementation

	procedure Foo(a: Integer);
	begin		
	end;
	
begin
end.
Компилятор нам скажет:
Compiler: [Error] (D:\stealth\scripts\FOO.pas at 6:12): Internal error (20)

Хотя на самом деле ошибка в файле test.sc в строке 6:7. Не хватает : .

Re: Stealth Pascal debugger

Posted: 14.11.2014 18:04
by Maxwell
И еще.
5. Он не умеет отлаживать модули или я что-то не так делаю?

Re: Stealth Pascal debugger

Posted: 14.11.2014 19:36
by Vizit0r
1. Ну я конечно могу придумать вынимание метаданных типа из кода... Но ладно. Delphi уже лет 10 не пользовал и точно не помню как там выглядит дебаггер, по этому вопрос снимается.
я тоже могу. Стелс 4 версии кажется показывал названия за счет парсинга скрипта. Итог - адские тормоза за счет этого парсера на больших скриптах. Ну и сопутствующие прелести типа проблем парсинга инклюдов, uses'ов и прочее, прочее. Итог - выпилено полностью, заменено на прямую работу с ПСом.

Остальное посмотрю, как будет время.

Re: Stealth Pascal debugger

Posted: 23.04.2015 10:11
by drabadan
Фубля

Re: Stealth Pascal debugger

Posted: 23.04.2015 10:54
by Vizit0r
прибил бота