Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / баг компилятора? / 25 сообщений из 36, страница 1 из 2
14.11.2020, 12:16
    #40018272
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Linux


упорно заходит в TPSPascalCompilerMessage(FMessages[l]).Free, при том, что FMessages.Count = 0 с гарантией, дебаггер подтверждает.
смотрю асм код.

uPSCompiler.pas.2642: for l := 0 to FMessages.Count - 1 do
000000000101694C 488B45E8 mov rax,QWORD PTR [rbp-0x18]
0000000001016950 483945F0 cmp QWORD PTR [rbp-0x10],rax
0000000001016954 75CD jne 0x1016923 <Upscompiler.TPSPascalCompiler.Clear()+115>

cmp QWORD PTR [rbp-0x10],rax ставит флаг ZF 0, и прыгает соответственно.
По адресу rbp-0x10 ноль.

Раньше такого не было, а сейчас вдруг всплыло.

Что делать, куда копать? Смутно припоминаю, что много лет назад что-то было похожее на винде, но где именно и как исправлял - не помню.
...
Рейтинг: 0 / 0
14.11.2020, 12:18
    #40018273
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
вопрос снят,
var l: Longint;
vs
property Count: Cardinal read FCount;

Longint в Posix64 имеет 8 байт.

Продолжение знакомых старых историй, непонятно только почему раньше было нормально, а сейчас всплыло. Но неважно, суть ясна, исправлю.
...
Рейтинг: 0 / 0
14.11.2020, 14:40
    #40018312
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Это скорее баг отладчика.

У меня буквально на днях была ситуация, когда в коде:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  ...
  case Key of
    VK_RETURN:
      ...
    VK_ESCAPE:
{1}   PostQuitMessage(1);
  else
{2} Exit;
  end;
{3} Key := 0;



Отладчик при нажатии F8 последовательно проходил по строчкам {1}, {2} и {3}!
При этом код работал правильно, т.е. отладчик показывал выполнение инструкций, которые на самом деле не выполнялись. Хз что это было.
...
Рейтинг: 0 / 0
14.11.2020, 14:51
    #40018317
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
alekcvpотладчик показывал выполнение инструкций, которые на самом деле не выполнялись.

Вообще-то должен был бы проходить через 1-3-2...
PostQuitMessage не прерывает выполнение, так что присваивание обязано выполниться. Выход
из процедуры может осуществляться по желанию компилятора через любую удобную ему точку.

И вообще при современном неестественном интеллекте оптимизатора привязка строк исходника к
исполняемом коду весьма нетривиальна (если вообще возможна).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.11.2020, 16:19
    #40018334
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Dimitry Sibiryakov

Вообще-то должен был бы проходить через 1-3-2...

Через 2 он не должен был вообще проходить. Не важно что там в ассемблере, в коде порядок действий определён однозначно.
Но факт что он проходил именно 1 - 2 - 3, т.е. Exit() не выполнялся.
...
Рейтинг: 0 / 0
15.11.2020, 10:21
    #40018440
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
P.S. Отладчик в линухах работает ОЧЕНЬ странно.
...
Рейтинг: 0 / 0
15.11.2020, 22:00
    #40018600
loktevVasiliy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Проблема в том что, кто - то любит втыкать в редактор очень много директив препроцессоров, из за которых дебаггер неправильно прыгает по коду.
...
Рейтинг: 0 / 0
16.11.2020, 03:12
    #40018643
northener
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
loktevVasiliy
Проблема в том что, кто - то любит втыкать в редактор очень много директив препроцессоров, из за которых дебаггер неправильно прыгает по коду.

Вот отсюда пожалуйста подробнее.
...
Рейтинг: 0 / 0
16.11.2020, 09:56
    #40018668
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Отладчик неправильно прыгает по коду лишь в одном случае: если у pas файла неправильная кодировка и неправильные символы переноса строки .
Например, для винды - это 2 символа #13#10, а бывает так, что только один символ #13 и тогда нужно pas-файл преобразовать, например с помощью Notepad++
...
Рейтинг: 0 / 0
16.11.2020, 10:43
    #40018695
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
X11
Отладчик неправильно прыгает по коду лишь в одном случае: если у pas файла неправильная кодировка и неправильные символы переноса строки .
Например, для винды - это 2 символа #13#10, а бывает так, что только один символ #13 и тогда нужно pas-файл преобразовать, например с помощью Notepad++

Нет, из-за этого точки отладки смещаются, а там он прыгал по строкам кода правильно, просто не по тем.
...
Рейтинг: 0 / 0
16.11.2020, 11:33
    #40018716
loktevVasiliy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
northener
Вот отсюда пожалуйста подробнее.


Тут и так все понятно, что имелось введу. Есть такие люди, которые любят в 1 файл сунуть кода на 20 тысяч строк.
...
Рейтинг: 0 / 0
16.11.2020, 11:35
    #40018717
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
loktevVasiliy
northener
Вот отсюда пожалуйста подробнее.


Тут и так все понятно, что имелось введу. Есть такие люди, которые любят в 1 файл сунуть кода на 20 тысяч строк.


давай, расскажи нам, что файл на 20к строк вызывает баги компилятора, это очень интересно.

*тут должна быть картинка слушающего чувака с сигаретой, но мне лень ее искать*
...
Рейтинг: 0 / 0
16.11.2020, 11:45
    #40018723
loktevVasiliy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
loktevVasiliy
Проблема в том что, кто - то любит втыкать в редактор очень много директив препроцессоров, из за которых дебаггер неправильно прыгает по коду.


Vizit0r
давай, расскажи нам, что файл на 20к строк вызывает баги компилятора, это очень интересно.





Это просто констатация факта, что плохая структура файла - несёт в себе агонию и вред. Используйте .inc файлы, и правильную структуру документа.

И тогда сам по себе, никогда отладчик не будет не правильно прыгать по коду.

И нет, это именно из за того что директивы препроцессора всё портят
...
Рейтинг: 0 / 0
16.11.2020, 12:22
    #40018748
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
loktevVasiliy
Это просто констатация факта, что плохая структура файла - несёт в себе агонию и вред. Используйте .inc файлы, и правильную структуру документа.



Т.е. пруфов и сторей не будет, будет классическое "ДА ЭТО ВСЕ ЗНАЮТ!" + "это же очевидно!"

Ясно-понятно.
...
Рейтинг: 0 / 0
16.11.2020, 13:17
    #40018793
loktevVasiliy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Vizit0r,

Это индивидуально происходит. Но происходит это в частности из за ctrl + d
...
Рейтинг: 0 / 0
16.11.2020, 13:17
    #40018794
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Dimitry Sibiryakov
Вообще-то должен был бы проходить через 1-3-2...

интересно, что нечто похожее наблюдается и в дебагере Лазаря. Поначалу меня это удивило (в Дельфях ранее не замечал), но поскольку несколько нелепых прыжков по коду логику работы дебагера не нарушали, я просто на это забил :)
...
Рейтинг: 0 / 0
17.11.2020, 00:48
    #40019195
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Ну да, учитывая, что с inc файлами отладчик умеет работать чуть менее чем никак, отличный совет)) да и в принципе концепция эта неудобна. Попробуй в том же лазаре выйти на реализацию конкретной функции - всё проклянешь
...
Рейтинг: 0 / 0
17.11.2020, 01:44
    #40019210
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Fr0sT-Brutal
Попробуй в том же лазаре выйти на реализацию конкретной функции - всё проклянешь

поясни
...
Рейтинг: 0 / 0
17.11.2020, 14:19
    #40019432
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Док
Fr0sT-Brutal
Попробуй в том же лазаре выйти на реализацию конкретной функции - всё проклянешь

поясни

Понадобилось как-то поглядеть на реализацию ОС-зависимой функции. После 10-минутного барахтания в файлах из среды пришлось запускать поиск текста.
...
Рейтинг: 0 / 0
17.11.2020, 14:46
    #40019467
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Fr0sT-Brutal
Док
пропущено...

поясни

Понадобилось как-то поглядеть на реализацию ОС-зависимой функции. После 10-минутного барахтания в файлах из среды пришлось запускать поиск текста.

Я в такое уперся, когда ОС-функции "на лету" прикручиваются, а на момент написания кода там только ссылка куда-то. В остальном лазарь отлично справляется. Но это вопрос не к лазарю, а к тем, кто проектирует платформозависимый код.
...
Рейтинг: 0 / 0
17.11.2020, 15:03
    #40019480
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
wadman
Но это вопрос не к лазарю, а к тем, кто проектирует платформозависимый код.

Зато гибкость офигенная :)
...
Рейтинг: 0 / 0
17.11.2020, 15:05
    #40019483
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Fr0sT-Brutal
После 10-минутного барахтания в файлах из среды пришлось запускать поиск текста.

мне кажется, там просто внимательно надо посмотреть настройки
...
Рейтинг: 0 / 0
17.11.2020, 15:14
    #40019491
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Kazantsev Alexey
wadman
Но это вопрос не к лазарю, а к тем, кто проектирует платформозависимый код.

Зато гибкость офигенная :)

Но такое и в дельфи можно запилить. И в нем тоже можно потеряться.
Где-же и в какое время в рекорд с функциями/процедурами появляются ссылки на реальный код?

Например, как с менеджером памяти.
...
Рейтинг: 0 / 0
17.11.2020, 15:26
    #40019505
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
wadman
Но такое и в дельфи можно запилить.

Теоретически-то можно всё. На практике, в фпц я могу поменять менеджер ресурсов, а в дельфях, максимум, кастомизировать загрузку ресурсной строки.
...
Рейтинг: 0 / 0
17.11.2020, 15:30
    #40019510
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
баг компилятора?
Kazantsev Alexey
wadman
Но такое и в дельфи можно запилить.

Теоретически-то можно всё. На практике, в фпц я могу поменять менеджер ресурсов, а в дельфях, максимум, кастомизировать загрузку ресурсной строки.


а что там отладчик, на который все плюются - можно поменять на что-то нормальное?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / баг компилятора? / 25 сообщений из 36, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]