Отладка кода (программы) во FreeBasic - QBasic - Ответ 17224942

Под DOS любые куски памяти распечатаю. Под виндой да, защ. режим. Зарезервированную в программе

память респечатаю, почему нет? Можно в лог HEX-ами, можно на экран в граф виде, если что-то заметное надо найти.

Переменные типа структуры, собственно как я сказал вообще единственный нормальный способ отлаживать

корректно, особенно когда там многоуровневые штуки с указателями. Т.е. делаешь себе удобный шаблон

для отладки(проходки по этим структурам) и это очень сильная перестраховка на самом деле, делается когда

прям очень важная деталь в софте. Простенькие можно отладчиком, но смысла нет, обычно принтуются

несколько ключевых параметров.

Стек вызовов, всмысле последовательность вызовов функций? Стек вызовов мне не нужен, я же написал

что каждую деталь алгоритма завожу и проверяю отдельно, и не вижу смысла делать как-то по другому.

По итогу все собирается как лего и сразу работает.

А долгая перекомпиляция мне не грозит, т.к. все мои проекты укладываются в максимум секунду компиляции(на

старых версиях FB) и если будет как-то по другому, то сильно задумаюсь о том правильно ли всё делаю.

Тем не менее даже так есть пути всё побить на модули, сделать объектники и работать с каким-то одним

куском, компилируя через BAT-ник, это тоже довольно быстро будет и командная строка меня не пугает,

выведу ярлычок в быстрый запуск и буду радоваться. Последний раз работал с модулями ещё под DOS,

под винду - ни разу. Но наверное да, твой проект на 20k строк будет давать несколько секунд ожидания

особенно на современном компиле и с функциями оптимизации.

Ещё раз, если ошибка происходит как ты допустим говоришь в игре

в уже созданной

, и причина ошибки

вводит кодера в ступор сразу, т.е. сразу нет понятия что это вообще может быть(неизвестен модуль,

неизвестна функция), то будь ты хоть бог отладки - вероятность получить жопу на выходе приближается к соточке.

Обычно кодер догадывается сразу где говно, если мест где оно могло произойти не много. В противном случае

получается лажа и ты это прекрасно понимаешь. Латать недетерминиловку не залатаешь, если где-то подтекает.

И самая хреновая ситуация когда подтекает в одном модуле, а латаешь ты другой, который написан допустим

нормально, но его параметры влияют на неисправный. Здоровому человеку выдаются костыли, а больного сажают

на диету, ну ничего хорошего как бы. Если косяк есть, нужно абсолютно точно понимать что он локализован

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

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

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

Это не ставить фиктивные "затычки" на современных т.н. умных указателях и думать какой ты молодец,

что говно даже если и случится - будет работать дальше. Важно не что будет работать дальше, а что говно

в принципе случится, нельзя стряхнуть с себя ответственность и выйти сухим из воды. Где-то говно может

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

Мы не молодцы, были и получше ребятки из середины 90-х. А поколения до них ещё поумнее было и себя

костьми просто положили, облучаясь лампами и ЭЛТ трубками чтобы мы сейчас что-то вообще делали.

Про это и пишу, что надо схемы и описалова фигачить не щадя живота, потому что мы не они. А не

за компом сочинять на ходу и тыркаться в отладчике. Очень хорошо понимаю про что пишу, это разный

уровень осознанности, хотя бы стремиться к нему нужно. Вот о чём речь.

Формализация это трудно и да это больно, не кодинг, кодинг это 10%-15% времени.

И если ещё это делать правильно - тогда отладчик в 99,9% рядовых задач будет не нужен, к удивлению многих.

Почему советский союз вспоминают с трепетом, да там было многое своё, хорошего качества, на века сделанное.

И как сейчас делают? И почему наше всё такое дорогое, можно винить китайцев. Но дело не в них, представь

2 одинаковых товара, один наш, второй китайский с одинаковой ценой, какой купят? - Наш. Это менталитет.

Нам уже давно втюхивают что мы дикари отсталые и нефтебаза европы. Люди уже в это и поверили,

не дрыгают лапками и становится хуже и хуже и хуже. Но инженеры и смекалистые то где лучше - видно

невооружённым, явно не в Китае. Софт это то, что можно пилить без проблем. Это давно пытаются

монополизировать и скрыть от глаз. Потому что это риски, как получить хреновый продукт от неумёхи,

так и потерять прибыль если кто-то что-то сделает сам. Сейчас "сам" это синоним слова качество.

Если кратко, пишу о том, что не надо опускаться до уровня китайцев или аутсорц "индусов", мы инженеры

и можем делать хорошо. Если смотреть на ветви развития это демотивирует вообще что-то делать.

Но никто их не утверждал, это просто "Else another standard".

Одно неизменно - базу никто убрать не может, она так или иначе всплывает, всегда. Сделали процы

на Java, а почему, да потому что на ней кодят миллионы, это попытка массовой оптимизации, будут ли

они быстрее x86-x64 - да никогда. "Else another standard" делают просто для того, чтобы сгребать к себе

в карман бабки, те же Apple. Попробуй договориться с теми, кто не хочет договариваться ни с кем. И тут голос

"а что так можно было" и стадо понесло. И все эти компании, которые сидят в глухой обороне и отплёвываются

исками по патентам. Всё это нифига не здорово. Страна вроде как взяла какой-то курс, а подвижек нет.

И жопка то приближается. А люди тратят время на ерунду, куча пустых сфер, но некому их занять.

Мы де факто ничего не умеем, своих операционок - нет, офиса - нет, процессора - нет, видеокарт - нет, даже

сраных принтеров русских нет, все говорят мы великая страна, где мать его величие? ))) Мы в жопе!

2026 год будет только 130 нм техпроцесс и то если не разворуют, не случится землетрясение, цунами, смерч

или не прилетит ракета по заводу, ну там любые отмазки могут случиться, т.е. пентиум 3 тот что "туалетный",

2001 год, 1400Мгц. Оу еее! 16 ядерный эльбрус будет размером с материнскую плату, кулер тоже можно представить,

вместо электрокотла пойдёт, сразу к трубе в батарею и отапливать дом, проц киловатта на три, если не сгорит.

Ну это всё демагогия конечно так поразмыслить над жизнью.

Добавлено через 11 минут

Считаю, что такие штуки должны использоваться только с детекцией ЦП, как и SIMD-ы.

Если человек плохо именует переменные - да, проблемы будут. У меня проблем никогда не было,

при том что расшаривал реально много переменных. В качестве преимущества - значительное ускорение

кодинга при работе с префиксами. Я уже отошёл от такого кодинга и рассказывал почему.

Префиксы съедают много места на экране и довольно сильно "мусорят". Есть и плюсы - сразу виден тип,

но в заранее продуманных кусках кода - это не является преимуществом. Без префиксов смысла

не то чтобы мало, но часто всё равно требуется декларация типа. А если часто, то почему не делать

это всегда, в общем логика простая.

Вернуться к обсуждению:

Отладка кода (программы) во FreeBasic QBasic