Статические и нестатические функции — отладка контекста встроенных систем

Меня озадачил следующий вопрос: Как сохранить преимущество «статической» метки, но при этом иметь возможность отлаживать производственный код на месте?

] Ни разу случается, что непреднамеренное поведение происходит на сайте заказчика и только там. Во многих случаях возможность выполнить отладку может сэкономить много усилий и обеспечить очень быстрый ответ. Такая отладка обычно включает проверку поведения функции, что приводит нас к «статическому» определению.

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

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

Буду признателен за некоторые идеи с вашей стороны, в основном о том, как вы решили (если таковые имеются) эту дилемму. Или перефразируя вопрос так: "Что важнее?"

Хорошее обсуждение "статического" в C здесь.

7
задан Community 23 May 2017 в 10:31
поделиться