Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Stealth Pascal debugger

тут можно задать вопрос по скриптингу
Post Reply
Maxwell
Neophyte
Neophyte
Posts: 43
Joined: 10.11.2014 17:06

Stealth Pascal debugger

Post 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; может говорить о не существующих ошибках в модуле, хотя ошибка в самом скрипте. Пример могу привести.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth Pascal debugger

Post by Vizit0r »

1) Delphi показывает так же. Другой нормальный режим показа я с трудом представляю. Имена полей из записи я показать не могу, только их значения. Их на этапе выполнения уже нету, этих имен.
2) как повторить?
3) обновление прикручу, хотя достаточно кликнуть мышкой где-то в редакторе.
4) приведи.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Maxwell
Neophyte
Neophyte
Posts: 43
Joined: 10.11.2014 17:06

Re: Stealth Pascal debugger

Post 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. Не хватает : .
Maxwell
Neophyte
Neophyte
Posts: 43
Joined: 10.11.2014 17:06

Re: Stealth Pascal debugger

Post by Maxwell »

И еще.
5. Он не умеет отлаживать модули или я что-то не так делаю?
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth Pascal debugger

Post by Vizit0r »

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

Остальное посмотрю, как будет время.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Stealth Pascal debugger

Post by drabadan »

Фубля
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth Pascal debugger

Post by Vizit0r »

прибил бота
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Post Reply