Функции "иерархия вызовов" и "объявление" в Eclipse CDT опускают результаты, которые существуют в неопределенных (серых) областях #ifdef.
Пример:
void blah(void) {
#ifndef ABC
foo();
#else //line is greyed out
bar(); //line is greyed out
#endif //line is greyed out
}
Иерархия вызовов для foo () будет содержать список blah () в качестве вызывающей стороны; иерархия вызовов для bar () не будет перечислять blah ().
Я не ожидаю, что он выполнит полное разрешение того, какие блоки #define будут скомпилированы, я просто хотел бы, чтобы он возвращал все вызовы / объявления функции, которую я ищу, независимо от окружающих #define блоков это.
Другие IDE, такие как SlickEdit, могут сделать это.
Кто-нибудь знает способ заставить Eclipse принять это поведение?
Спасибо.