Linux C++ Debugger

2020-05-19 02:38发布

问题:

I'm looking for the perfect Linux C++ debugger. I don't expect success, but the search should be informative.

I am a quite capable gdb user but STL and Boost easily crush my debugging skills. It not that I can't get into the internals of a data structure, it's that it takes so long I usually find another way( "when in doubt, print it out" ).

The macro language for gdb is weird and not very adaptive. Just look at the code for the stanford gdb utils to print out stl structures.

In short I'm unhappy with what I've got.

I recently stumbled upon Zero Bugs. It looks like a silver bullet. What do the current Zero Bugs users think of it?

Has anyone found other good solutions to the Linux C++ Debugger problem?

回答1:

A development branch of gdb (part of gdb's Project Archer) adds Python support to gdb (to replace gdb's macros). There's a series of blog postings starting here that extensively covers getting started with Python-enabled gdb and offers several tutorials on using Python for defining new gdb commands and pretty printing of C++ data structures.



回答2:

UndoDB is amazing if you don't mind paying for it. The reversible capability is much much faster than GDB's. http://www.undo-software.com/



回答3:

There are simple scripts which let you dump STL structures from GDB.

Take a look here



回答4:

You can try NetBeans IDE 6.5 with gdb 6.8, it is quite powerful! http://www.netbeans.org/downloads/index.html



回答5:

ddd (data display debugger)is quite good.....it is basically a visual gdb....



回答6:

I use the following environment:

http://ec-lang.org/

It is a complete development environment for the eC language.

However, you can have a project with just c or c++ files without any eC specific files and build and debug them using the IDE.

This is the closest you will ever come to a "Borland C" like experience under linux.

It can be installed on Ubuntu/Debian with the following command:

sudo apt-get install ecere-sdk



回答7:

Recentg gdb (e.g. version 8.1) and g++ (e.g. GCC 7, in february 2018) are able to debug standard C++ containers thru Python scripts.



回答8:

I haven't done C++ development in Linux for a while now but when I did I had good luck when KDevelop's debugger. Nothing revolutionary but it let you quickly explore object properties like you are looking for.



回答9:

Try ddd.



回答10:

You can use Eclipse to step through C and C++ code if you are looking for an IDE type of debugger instead of a command-line debugger. It isn't perfect, but I've found it to work well for people already familiar with IDE debugging tools.

I am also partial to Valgrind for detecting memory errors.