Некоторое время я использовал для отладки что-то вроде следующего:
#ifdef DEBUG
# define Log(fmt, ...) printf(("[%s:%d] %s: " fmt "\n"), __FILE__, __LINE__, __PRETTY_FUNCTION__, ##__VA_ARGS__);
#else
# define Log(...)
#endif
Это прекрасно работает, так что когда я компилирую что-то вроде g++ -DDEBUG=1
, я получаю все ожидаемые отпечатки.
Мой вопрос (или проблема) состоит в том, чтобы придумать способ, которым эта отладка может происходить с помощью команды времени выполнения вместо времени сборки (например, ./myprocess -d
), не усложняя (или не меняя вообще) сторону клиентакод.