Отладка с помощью gdb, любой код С++, использующий STL/boost, по-прежнему является кошмаром. Об этом знает любой, кто использовал gdb с STL. Например, см. Примеры прогонов некоторых сеансов отладки в коде здесь.
Я пытаюсь уменьшить боль, собирая советы. Можете ли вы прокомментировать советы, которые я собрал ниже (в частности, те, которые вы использовали, и любые изменения, которые вы им порекомендовали). Я перечислил советы, уменьшая порядок технических требований.
- Кто-нибудь использует "Stanford GDB STL utils" и "UCF GDB Utils" ? Есть ли такие утилиты для форсированных структур данных? Утилиты выше не могут использоваться рекурсивно, например, для печати вектора boost:: shared_ptr разборчиво в пределах одной команды.
- Запишите файл .gdbinit. Включите, например, С++, связанные с украшателями, перечисленные в нижней части UCF GDB utils.
- Использовать проверенную/отладочную библиотеку STL/Boost, такую как STLport.
- Использовать ведение журнала (например, как описано здесь)
Обновление: GDB имеет новую ветку С++.