Как отображать имена переменных при выполнении разборки скомпилированного кода C с помощью Eclipse debugger?

#c #debugging #gdb #eclipse-cdt #disassembly

#c #отладка #gdb #eclipse-cdt #разборка

Вопрос:

У меня есть следующая программа на C.

 // main.c

int main(void) {
    int x = 10;
    int y = 20;
    return 0;
}
  

Когда я выполняю разборку с помощью отладчика Visual Studio 2019 в Windows, я вижу следующий вывод, в котором показан код C, за которым следуют соответствующие инструкции.

      7:     int x = 10;
 mov         dword ptr [rbp 4],0Ah  
     8:     int y = 20;
 mov         dword ptr [rbp 24h],14h  
     9:     int z = x   y;
  

Когда я выбираю Show Symbol Names из контекстного меню, вызываемого правой кнопкой мыши, адреса в стеке отображаются как соответствующие им имена переменных (например, [rbp 4] отображается как [x] ).

      7:     int x = 10;
 mov         dword ptr [x],0Ah  
     8:     int y = 20;
 mov         dword ptr [y],14h  
  

Я хотел бы включить аналогичную функциональность при отладке в Eclipse 2020-09 с CDT 10.0.0.202009071455 в Linux. Я компилирую с gcc -g main.c помощью .

При пошаговом выполнении дизассемблирования отображается следующее, независимо от того Show Symbols , выбрано ли оно в контекстном меню, вызываемом правой кнопкой мыши.

   int x = 20;
mov     DWORD PTR [rbp-0x8],0xa
  int y = 30;
mov     DWORD PTR [rbp-0xc],0x14
  

Есть ли какой-нибудь способ, например, [rbp-0xc] отображать как [y] , как это было бы в Visual Studio? Я попытался выполнить разборку gdb напрямую, и я столкнулся с той же проблемой, когда вместо меток отображаются адреса. Есть ли какая-то опция в дополнение к -g той, которую мне нужно использовать при компиляции? Я пробовал оба gcc и clang .