metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2016-07-25 10:18 am

C, магия макросов и отладка

Судя по тому, что я наблюдаю в либах на Си (например, libuv), магия из макросов весьма популярна, в том числе и для реализации разного рода структур данных вроде списков, хэшей (https://troydhanson.github.io/uthash/) и прочего такого.

Вопрос вот в чем - как это нормально отлаживать то? Падает с access violation где-нибудь в кишках макроса на три страницы, отладчик указывает на строку с макросом и единственный способ понять происходящее - медитировать до бесконечности на содержимое переменных, используемых в макросе, потому что кода не видно. Ну или пытаться в уме разложить дизассемблированный код на исходники.

[personal profile] alll 2016-07-25 07:31 pm (UTC)(link)
Гм. По прошествии достаточного времени скорее всего выяснится, что при любом раскладе время потрачено на в сущности фигню (кроме быть может детей и студентов, да и то не уверен). Останется только выбор между фигнёй, которая радовала в процессе занятия ею и фигнёй, которая огорчала. :)

[identity profile] psilogic.livejournal.com 2016-07-25 08:10 pm (UTC)(link)
хорошо сказано :)

[identity profile] blackyblack.livejournal.com 2016-07-27 08:27 am (UTC)(link)
По прошествии времени ещё и бабло может остаться. Так что выбор несколько шире.

[personal profile] alll 2016-07-27 09:03 am (UTC)(link)
Начиная с некоторого уровня бабло не "может остаться", а просто остаётся, вопрос только в количестве. Но если вдруг оно кого-то радует в особо больших количествах, то выбор в сущности тот же.

[identity profile] blackyblack.livejournal.com 2016-07-27 09:05 am (UTC)(link)
Для вечноголодного метакласса это вопрос принципиальный. :)

[personal profile] alll 2016-07-27 09:11 am (UTC)(link)
Судя по его упорному сидению в одной позиции который год, принципиально для совсем другое. "Лучше быть нужным, чем свободным", евпочя.