Używam funkcji LOG_DEBUG
do drukowania informacji debugowania na ekranie. Użyłem funkcji #define _DEBUG
do wyłączenia funkcji LOG_DEBUG
poprzez zdefiniowanie flagi FLAG w czasie kompilacji (czas wydania). ale linux strings
Polecenia aplikacji release build nadal wyświetlają ciągi debugujące, które istnieją w skompilowanej aplikacji. więc jakie są alternatywy, aby wyeliminować argumenty z LOG_DEBUG
?usuwa ciągi debugowania w wersji wydania
#ifdef _DEBUG
#define LOG_DEBUG(fmt, ...) printf("[D][%s:%d %s]", __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__)
#else
#define LOG_DEBUG(fmt, ...)
#endif
LOG_DEBUG("this is a debug string"); // "this is a debug string" exists in app release build yet
kompilator używam: ARM/Thumb C/C++ Compiler, RVCT3.1 [Build 569]
optymalizacja: -O3
Edytuj pytanie, dołączając nazwę i wersję kompilatora. Czy próbowałeś zmienić ustawienia optymalizacji? –
Domyślam się, że * jednym * sposobem byłoby otoczenie ** każdego ** debugowania z '# ifdef', ale zakładam, że nie chcesz tego robić;) – Jeeter
jest ogromna liczba wywołań funkcji, szukam dla czystszego sposobu –