GDB стал работать медленно после написания шаблонизированного кода C++ [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 GDB стал работать медленно после написания шаблонизированного кода C++ [закрыто]

Сообщение Anonymous »


Я перенес приложение, написанное без использования шаблонов, в сильно шаблонизированный дизайн (с использованием трейтов и других методов метапрограммирования). Это приложение использует несколько других файлов .so (один из них называется libxyz.so).

Я скомпилировал двоичный файл отладки и запустил его с помощью GDB, используя

gdb --args Для отладки с помощью GDB я печатаю значения определенных объектов, которые присутствуют в libxyz.so. Печать этих переменных при использовании GDB становится чрезвычайно медленной и занимает около 15-20 секунд. Раньше выполнение того же упражнения с предыдущей версией моего двоичного файла выполнялось очень быстро (1–2 секунды).

Распечатка локальных аргументов или аргументов функции с использованием новых и старых двоичных файлов по-прежнему выполняется достаточно быстро.

Размер старой и новой библиотеки практически одинаковый (~30 МБ).

Я проверил количество символов в новой и старой библиотеке.

readelf -Ws libnew.so Новая библиотека содержит около 230 дополнительных символов, а общее количество символов составляет ~13500.

Я не могу понять, почему GDB стал таким медленным. Кто-нибудь сталкивался с этой проблемой раньше? Или может кто-нибудь помочь разобраться в основной причине этой проблемы?

Я использую GDB версии 9.2.

Использование приведенных ниже команд для печати типа объекта в GDB
пространство имен ptype::variable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»