Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] Variables view to show implementation class members?

Hi all,

 

We are heavily making use of polymorphism. Using the debugger, the variables view shows the members of the declared class, not of the implemented. This doesn’t really help much.

 

However, using gdb in the console view, I can look into the implementation class, using the following command sequence:

 

set print object on

print _expression_

 

My question, is this a limitation of the gdb MI (-var-evaluate-_expression_ seems to be used for the variables view), should the input be sent to the gdb folks instead?

 

Or could the CDT do it, e.g. gdb commands can be also sent to a gdb MI session?

 

Anyone working on that already?

 

Greetings, Jens.

 

Example:

#include <iostram>

using namespace std;

 

class Client {

public:

  virtual ~Client() {}

};

 

class SpecificClient : public Client {

public:

 

  virtual ~SpecificClient() {};

 

private:

  int mFive;

  string mText;

};

 

int main()

{

  Client *p = new SpecificClient;

 

  cerr << "Set break point here " << p << endl;

  return 0;

}

 

Set print object on

print *p

 

1329-interpreter-exec console "print *p"

~"$1 = (SpecificClient) {\n"

$1 = (SpecificClient) {

~"  <Client> = {\n"

  <Client> = {

~"    _vptr.Client = 0x400eb0\n"

    _vptr.Client = 0x400eb0

~"  }, \n"

  },

~"  members of SpecificClient: \n"

  members of SpecificClient:

~"  mFive = 0"

  mFive = 0~", \n"

,

~"  mText = {\n"

  mText = {

~"    static npos = 18446744073709551615"

    static npos = 18446744073709551615~", \n"

,

~"    _M_dataplus = {\n"

    _M_dataplus = {

~"      <std::allocator<char>> = {\n"

      <std::allocator<char>> = {

~"        <__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, \n"

        <__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},

~"      members of std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider: \n"

      members of std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider:

~"      _M_p = 0x3dfdcefe18 \"\""

      _M_p = 0x3dfdcefe18 ""~"\n"

 

~"    }"

    }~"\n"

 

~"  }"

  }~"\n"

 

~"}"

}~"\n"

 

Jens Elmenthaler
Platform & Components Lab

Architecture Development Team

 



Verigy Germany GmbH, Her
renberger Str. 130, 71034 Böblingen
Sitz der Gesellschaft: Böblingen - Amtsgericht Böblingen HRB 6167

WEEE-Reg.-Nr. DE 16968742
Geschäftsführer: Hans-Jürgen Wagner, Dietmar Höller

Tel: +49 7031 4357-119

jens.elmenthaler@xxxxxxxxxx
 

 


Back to the top