Для чего “полоса” (приложение GCC) используется?

Эти stl-views.gdb раньше был лучшим ответом было, но не больше.

Это еще не интегрируется в магистраль GDB, но здесь - то, что Вы получаете использование ответвления 'archer-tromey-python' :

(gdb) list
1   #include 
2   int main(){
3       std::map m;
4       m[1] = 2;
5       m[2] = 4;
6       return 0;
7   }
(gdb) break 6
Breakpoint 1 at 0x8048274: file map.cc, line 6.
(gdb) run

Breakpoint 1, main () at map.cc:6
6       return 0;
(gdb) print m
$1 = std::map with 2 elements = {
  [1] = 2,
  [2] = 4
}
(gdb) quit

24
задан rainer 22 September 2016 в 12:59
поделиться

3 ответа

Из (Mac OS X, но другие похожи) страница руководства : полоса

удаляет или изменяет таблицу символов, прикрепленную к выходу ассемблер и редактор ссылок. Это полезно для экономии места после программа была отлажена и ограничивает динамически привязанные символы.

Обратите внимание на бит о «после того, как программа была отлажена», потому что отладка удаленного исполняемого файла действительно очень сложна. «Ограничение динамически связанных символов» встречается реже: он позволяет сделать некоторые функции во внешней библиотеке недоступными, удаляя записи индекса, которые говорят, где находится фактический код. Это также объясняется на странице руководства.

Каким бы дешевым и доступным ни был диск, в большинстве случаев вы просто не будете беспокоиться об этом больше. Но вам может понадобиться его для ситуаций с ограниченным пространством, таких как встроенные устройства, аварийные диски и т. Д.

26
ответ дан 28 November 2019 в 23:47
поделиться

Он удаляет символьную информацию из двоичного файла. Бинарный файл содержит некоторую информацию, которая отображает символы (например, имена функций) в определенные места. полоса удаляет их.

7
ответ дан 28 November 2019 в 23:47
поделиться

По умолчанию полоса команда удаляет таблицу символов и любую отладочную информацию из исполняемый файл.

Отсюда

4
ответ дан 28 November 2019 в 23:47
поделиться