Re: SoftICE - замена?
От: Zhendos  
Дата: 01.10.25 11:34
Оценка: +3
Здравствуйте, yoyozhik, Вы писали:

Y>И да, в мире linux есть современные аналоги?


В qemu встроена поддержка gdb. Поэтому с помощью gdb
можно отлаживать по шагам от запуска BIOS/ROM до загрузки ядра,
а потом ядро по шагам.

Ну или можно тоже самое делать по JTAG, там тоже в 99% случаев есть поддержка
протокола gdb.
Re[2]: SoftICE - замена?
От: IID Россия  
Дата: 01.10.25 11:52
Оценка: +1
Здравствуйте, pva, Вы писали:

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


в IDA отладчик работает по GDB протоколу. Поэтому любой GDB stub — и можно отлаживаться.
(При желании можно свой стаб для винды написать, знаю когда такой делали чтобы ранние этапы бута винды отлаживать.)

Я из IDA отлаживал Cortex-M, через OpenOCD. Прямо по голому железу.
kalsarikännit
Re[5]: SoftICE - замена?
От: IID Россия  
Дата: 01.10.25 11:54
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Для таких случаев единственно правильный вариант — аппаратный отладчик. Все остальное — баловство и лотерея по определению.


Аппаратный, сам-по-себе, тоже не панацея. Вспомни, как детектили BluePill.

Кстати, аппаратная виртуализация и есть аппаратный отладчик.
kalsarikännit
Re: SoftICE - замена?
От: Marzec19 Россия  
Дата: 01.10.25 11:56
Оценка: :)
Тема на грани законности? Или как на это смотреть? Я не профессионал, поэтому спрашиваю.

В 00-х был редкатор памяти ArtMoney для компьютерных игр. Но мне его не довелось освоить.
Re[3]: SoftICE - замена?
От: pva  
Дата: 01.10.25 12:10
Оценка:
Здравствуйте, IID, Вы писали:

IID>в IDA отладчик работает по GDB протоколу. Поэтому любой GDB stub — и можно отлаживаться.

IID>(При желании можно свой стаб для винды написать, знаю когда такой делали чтобы ранние этапы бута винды отлаживать.)
Я про

и вероятность того что оно умеет вместо kddbg аттачится. Хотя, выше уже указали на отличное комбо с qemu. Про него я совсем забыл.
newbie
Re[6]: SoftICE - замена?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 01.10.25 14:17
Оценка:
Здравствуйте, IID, Вы писали:

IID>Аппаратный, сам-по-себе, тоже не панацея.


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

IID>Вспомни, как детектили BluePill.


Я не вдавался, в чем там были сложности?

IID>аппаратная виртуализация и есть аппаратный отладчик.


Ее, во-первых, нужно как-то настроить (например, запустить отдельный загрузчик), а как в таком случае отлаживать штатную работу того же BIOS? Во-вторых, ее реализация должна позволять полностью воспроизвести исходную конфигурацию (то есть — возможность неограниченной вложенности), а такого, насколько я знаю, ни один процессор не поддерживает.
Re[2]: SoftICE - замена?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 01.10.25 14:18
Оценка:
Здравствуйте, undo75, Вы писали:

U>на больших эвм с перволентой и перфокартами как бы вы отлаживались?


Возможно, Вы удивитесь, но средства отладки (как аппаратные, так и программные) были и там.
Re[3]: SoftICE - замена?
От: jamesq Россия  
Дата: 02.10.25 10:56
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, undo75, Вы писали:


U>>на больших эвм с перволентой и перфокартами как бы вы отлаживались?

ЕМ>Возможно, Вы удивитесь, но средства отладки (как аппаратные, так и программные) были и там.

Как я видел на фоточках тех больших машин, там можно было буквально с большого пульта-консоли сделать дохрена низкоуровневых операций.
В т.ч. считать/записать байты в память. Посмотреть содержимое регистров. Остановить и выполнять программу по шагам.
Вот это — подлинный аппаратный отладчик.

А ещё раньше, в самых первых ЭВМ, даже ассемблера никакого не было. Программы нужно было составлять прямо в машинных кодах с помощью ручки и бумажки. Потом как-то загонять её в ЭВМ, и только затем запускать.
Но программы тех лет были куда как проще нынешних.
Re: SoftICE - замена?
От: mike_rs Россия  
Дата: 02.10.25 11:36
Оценка: +1
Здравствуйте, yoyozhik, Вы писали:

Y>Есть современные аналоги?


Для какой цели? Ты же понимаешь, что инструмент выбирается под цель. Что у тебя за цель, что не хватает штатного windbg?
Re[4]: SoftICE - замена?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 02.10.25 14:08
Оценка:
Здравствуйте, jamesq, Вы писали:

J>можно было буквально с большого пульта-консоли сделать дохрена низкоуровневых операций.


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

J>в самых первых ЭВМ, даже ассемблера никакого не было. Программы нужно было составлять прямо в машинных кодах с помощью ручки и бумажки.


Самое смешное, что так нередко делалось на PDP-11 (СМ-4, Электроника-100, Электроника-60 и т.п.). Там была принята восьмеричная система счисления для отображения кодов и команд, а система команд была "ортогональной", где в качестве источника и приемника данных фигурировали пары из метода адресации (три бита) и используемого регистра (еще три бита) — по две восьмеричные цифры. Остальные разряды отводились под код операции, так что и читать, и составлять такие команды было очень легко.

Эта система команд была чертовски компактной и одновременно мощной и удобной, до сих пор по ней ностальгия. Когда нужно было набросать программку из пары десятков команд, и было лень возиться с ассемблером, мы так и забивали машинные коды по абсолютным адресам. Все описание базовой архитектуры и системы команд помещалось на складную картонную карту формата A5, у меня где-то валяется такая.

Еще были забавные компьютеры-калькуляторы Электроника Д3-28, содранные с какого-то Wang'а и творчески доработанные в СССР. Там система счисления уже использовалась псевдо-шестнадцатеричная (пары вида 1215 вместо CF), а система команд организована так, что кнопки ввода цифр и математических операций генерировали соответствующие машинные команды. Их мы тоже программировали прямо в кодах.

J>Но программы тех лет были куда как проще нынешних.


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

Но даже без извращений можно было сделать довольно много. Я, например, на той же Д3-28 за пару месяцев наколотил в машинных кодах визуальный текстовый редактор с форматированием, печатью, сохранением на ленту и чтением с нее. Когда под рукой нет ничего, кроме голой железки с кнопками, такое не кажется чрезмерно сложным.
Re[3]: SoftICE - замена?
От: undo75  
Дата: 02.10.25 14:15
Оценка:
ЕМ>Возможно, Вы удивитесь, но средства отладки (как аппаратные, так и программные) были и там.

кэшно были. но кнопкой ф10 в вижуал студио там и не пахло )
Re[5]: SoftICE - замена?
От: jamesq Россия  
Дата: 02.10.25 16:24
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

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


Да уж. Сейчас в порядке развлечения ковыряюсь во всяких древностях. Пытаюсь что-нибудь попрограммировать.
Что у процессора только один регистр аккумулятора для вычислительных операций — к этому я уже привык. Что оперативки только 2 килобайта — это тоже бывает. Что нету операций умножения и деления — так даже интереснее.
Но вот что операция побитового сдвига выполняется только на 1 разряд — это уж слишком.

Я хочу на таком железе sha256 посчитать
Re[6]: SoftICE - замена?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 02.10.25 17:19
Оценка:
Здравствуйте, jamesq, Вы писали:

J>операция побитового сдвига выполняется только на 1 разряд — это уж слишком.


"Это вы слишком много кушать". Чтобы команда могла двигать на произвольное количество разрядов, нужно либо микрокод крутить в цикле (и тогда это ничем не лучше обычного цикла), либо иметь в АЛУ до хренища аппаратных мультиплексоров, с помощью которых можно отобразить любую часть слова на любую другую, а это дорого.

J>Я хочу на таком железе sha256 посчитать


Ресурсов вполне достаточно.
Re[7]: SoftICE - замена?
От: jamesq Россия  
Дата: 02.10.25 18:01
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, jamesq, Вы писали:


J>>операция побитового сдвига выполняется только на 1 разряд — это уж слишком.


ЕМ>"Это вы слишком много кушать".

... либо иметь в АЛУ до хренища аппаратных мультиплексоров, с помощью которых можно отобразить любую часть слова на любую другую, а это дорого.

Нынешние владельцы EPYC Genoa с 64 ядрами и терабайтом ОЗУ откровенно зажратые типы по сравнению с подобным. У которых одних транзисторов на чипе в 15 миллионов раз больше.
Re[5]: SoftICE - замена?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 02.10.25 18:38
Оценка: :)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Но даже без извращений можно было сделать довольно много. Я, например, на той же Д3-28 за пару месяцев наколотил в машинных кодах визуальный текстовый редактор с форматированием, печатью, сохранением на ленту и чтением с нее. Когда под рукой нет ничего, кроме голой железки с кнопками, такое не кажется чрезмерно сложным.


Вот видишь, какой ты способный. Мог бы наколотить и плюсовый компилятор со своими макросами где-нибудь за полгода
Маньяк Робокряк колесит по городу
Re[6]: SoftICE - замена?
От: Слава  
Дата: 02.10.25 20:04
Оценка:
Здравствуйте, Marty, Вы писали:

M>Вот видишь, какой ты способный. Мог бы наколотить и плюсовый компилятор со своими макросами где-нибудь за полгода


Но совершенно точно не мог бы сделать там современный сайт на React и Node.
Re[7]: SoftICE - замена?
От: IID Россия  
Дата: 03.10.25 13:03
Оценка: 1 (1)
Здравствуйте, Евгений Музыченко, Вы писали:

IID>>Вспомни, как детектили BluePill.


ЕМ>Я не вдавался, в чем там были сложности?


Вложенная виртуализация. До Bluepill наивно считалось, что если ты не смог перейти в режим гипервизора — значит он уже запущен. И детект тривиальный.
Bluepill был софтовой реализацией вложенной виртуализации.
И когда у тебя, потенциально, завиртуализировано ВСЁ. Как НАДЕЖНО и в общем случае понять, на реальном железе ты исполняешься, или под виртуалкой.

Напомню, это было время, когда только-только вышли первые платы с AMD виртуализацией, а Intel ещё только обещал выпустить свою.

IID>>аппаратная виртуализация и есть аппаратный отладчик.


ЕМ>ее реализация должна позволять полностью воспроизвести исходную конфигурацию (то есть — возможность неограниченной вложенности), а такого, насколько я знаю, ни один процессор не поддерживает.


И опять напомню про BluePill — там сделали вложенную виртуализацию "руками". Задолго, до появления железной поддержки вложенности.
kalsarikännit
Re[2]: SoftICE - замена?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 04.10.25 15:35
Оценка:
Здравствуйте, Marzec19, Вы писали:

M>Тема на грани законности? Или как на это смотреть? Я не профессионал, поэтому спрашиваю.


Смотри, не влипни
Маньяк Робокряк колесит по городу
Re[5]: SoftICE - замена?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 06.10.25 14:45
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Самое смешное, что так нередко делалось на PDP-11 (СМ-4, Электроника-100, Электроника-60 и т.п.). Там была принята восьмеричная система счисления для отображения кодов и команд, а система команд была "ортогональной", где в качестве источника и приемника данных фигурировали пары из метода адресации (три бита) и используемого регистра (еще три бита) — по две восьмеричные цифры. Остальные разряды отводились под код операции, так что и читать, и составлять такие команды было очень легко. Эта система команд была чертовски компактной и одновременно мощной и удобной, до сих пор по ней ностальгия.


У S/360 тоже предельно простая как для человека система команд, легко читается и пишется и в дампе, и на пульте. И потомок в виде SystemZ сохранил большую часть этих свойств (хоть ему и не нужно).

ЕМ>Но даже без извращений можно было сделать довольно много. Я, например, на той же Д3-28 за пару месяцев наколотил в машинных кодах визуальный текстовый редактор с форматированием, печатью, сохранением на ленту и чтением с нее. Когда под рукой нет ничего, кроме голой железки с кнопками, такое не кажется чрезмерно сложным.


Хотелось бы услышать подробности о структурах данных и трюках
The God is real, unless declared integer.
Re[7]: SoftICE - замена?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 06.10.25 14:49
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>"Это вы слишком много кушать". Чтобы команда могла двигать на произвольное количество разрядов, нужно либо микрокод крутить в цикле (и тогда это ничем не лучше обычного цикла),


Лучше — тем, что на уровне микрокода можно выбрать, как именно удобнее исполнять операцию.
Грубо говоря, в модели 1000 только сдвиг по биту в цикле, в 2000 и 3000 добавлен уровень мультиплексирования, который двигает по 4 бита за такт, а в 5000 и далее — полная бочка.

EM> либо иметь в АЛУ до хренища аппаратных мультиплексоров, с помощью которых можно отобразить любую часть слова на любую другую, а это дорого.


Сейчас уже копейки. Прикольно наблюдать, конечно, мучения народа на 8051, но уже нефункционально.
The God is real, unless declared integer.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.