Все мы привыкли программировать

в средах где есть встроенные средства отлова ошибок, такие как пошаговая трансляция,просмотр значений переменных и.т.д. Представьте во что бы превратилась жизнь если бы их небыло...
В используемой среде разработке на С нет отладчика. Сразу оговорюсь что огранечение даже не компилятора (GCC? а платформы (будем считать разрабатываемой).
Какими средствами можно реализовать отладку и пошаговую трансляцию, как это реализуется в известных реализациях.
Какие способы посоветуете для решения задачи. Пока предполагается использовать макроопределения и средства препроцесора, плюс самописные утилиты.