Системные макросы Symbian OS
Метаданные
Ниже приведены макросы, которые можно использовать для выявления утечек памяти, а также макросы, которые позволяют симулировать нехватку памяти.
__UHEAP_MARK
Старт проверки динамической памяти текущей нити. Макрос определен только для отладочных версий.
__UHEAP_MARKEND
Окончание проверки динамической памяти текущей нити. Выполняет проверку, что с момента вызова __UHEAP_MARK (на текущем уровне вложенности) вся выделенные ячейки памяти были освобождены. Этому макросу должен соответствовать предварительно вызванный __UHEAP_MARK. Макрос определен только для отладочных версий.
__UHEAP_MARKENDC
Окончание проверки динамической памяти текущей нити. Выполняет проверку, что с момента вызова __UHEAP_MARK (на текущем уровне вложенности) остались неосвобожденными aCount ячеек памяти. Этому макросу должен соответствовать предварительно вызванный __UHEAP_MARK. Макрос определен только для отладочных версий.
__UHEAP_FAILNEXT
Симулирует отказ при попытке выделения динамической памяти в рамках текущей нити. Ошибка возникнет при следующем использовании оператора new или любой функции, которая пытается выделить память в куче. Макрос определен только для отладочных версий.
__UHEAP_SETFAIL
Симулирует отказ при попытке выделения динамической памяти в рамках текущей нити. Ошибка возникнет при всех последующих использованиях оператора new или функций, которые пытается выделить память в куче. Макрос определен только для отладочных версий.
__UHEAP_RESET
Отмена симуляции отказа при выделении динамической памяти в рамках текущей нити. Макрос определен только для отладочных версий.
__ASSERT_ALWAYS
Проверка утверждения - действует и в отладочной и в релизной версии. Позволяет выявить ошибки взаимодействия и проектирования классов на ранних стадиях разработки программы.
__ASSERT_DEBUG
Проверка утверждения - действует только в отладочной версии.
__DECLARE_TEST / __TEST_INVARIANT
Проверяют состояние объекта.
GLDEF_C
На практике используется для обозначения глобальных функций.
_DEBUG
С помощью этого макроса код, предназначенный только для тестирования или отладки можно исключить из релизной версии.
_UNICODE
Используется при компиляции кода с использованием Unicode.
IMPORT_C
Макрос используется в приложении для объявления функций, импортируемых из DLL. Макрос информирует компилятор о том, что такие функции необходимо искать в динамических библиотеках.
EXPORT_C
Используется при создании динамических библиотек для объявления экспортируемых функций.
TRAP() и его варианты
Используется в механизме обработки ошибок. Для более подробной информации см. Использование ловушки(TRAP).


(no comments yet)