Эквивалентно toString () в Eclipse для отладки GDB - PullRequest
3 голосов
/ 16 февраля 2010

В Eclipse я могу переопределить метод toString () объекта, чтобы красиво его напечатать. Это особенно полезно, потому что во время сеансов отладки я могу нажать на переменную и увидеть объект в удобочитаемой форме.

Есть ли какой-либо эквивалент C ++ во время сеанса GDB. Я также открыт для любых сред IDE, которые могут эмулировать это поведение.

Ответы [ 2 ]

1 голос
/ 16 февраля 2010

В gdb команда print печатает содержимое переменной. Если вы используете любую IDE для C ++, например. Netbeans, Eclipse, VC ++, затем указывающий на переменную, показывает содержимое.

РЕДАКТИРОВАТЬ: посмотреть, если код ниже, что вы ищете.

#include <string>
using std::string;

#define magic_string(a) #a

template<typename T>
class Object_C
{
private:
    virtual string toString_Impl()
    {
        return magic_string(T);
    }

public:
    Object_C(void)
    {
    }
    virtual ~Object_C(void)
    {
    }
    string toString()
    {
        return toString_Impl();
    }
};

class Base_C :
    public Object_C<Base_C>
{
private:
    string toString_Impl()
    {
        char str[80] = "";
        sprintf_s(str, 79, "Base.x:%d\n", x_);
        return string(str);     
    }
private:
    int x_;

public:
    Base_C(int x = 0) : x_(x) { }
    ~Base_C(void);
};

void ToStringDemo()
{
    Base_C base;
    cout << base.toString() << endl;
}
0 голосов
/ 20 июня 2018

вместо Visual Studio C ++?

[DebuggerDisplay("Count = {count}")]  
class MyHashtable  
{  
    public int count = 4;  
}  

https://docs.microsoft.com/en-us/dotnet/framework/debug-trace-profile/enhancing-debugging-with-the-debugger-display-attributes
...