Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Possible to use the qtc-debugging-helper (Either DSF/CDI)

There actually is a "generic pluggable value formatter" framework in eclipse, called logical structures, but DSF does not use it :-(  I suppose this is another [cdi] parity bug.  An option that you do have is to add a custom detail formatter which calls the custom command that the qtc-debugging-helper library expects. 

If you have the option of hacking the DSF-GDB, then you could probably get it to do what you want with a little effort.  You'd need to extend VariableVMProvider and VariableVMNode and add a step that checks a variable's type to see if it matches the Qt types, and use the alternative method of evaluating the _expression_.

Cheers,
-Pawel


Warren.Paul@xxxxxxxxx wrote:
I don't think your issue will be getting the value to display from qtc-debugging-helper but rather how to get the debugger to display it.  I don't think there's a generic pluggable variable formatter.  Right now it seems back-end specific with EDC having it's own, and GDB using pretty printers.  Given that you're using a build of GDB that doesn't support pretty printers, you'd have to hack something together somehow.

As I said, our team will add Qt support to the EDC formatter, so the only missing piece for you then would be the Mac TCF agent.  I'm not sure if anyone has considered writing such an agent yet or not, but this is probably the right forum to ask the question.  :)  I'm not a Mac guy so I can't say how much work that would be, but if the OS has any debug support (run control, memory/register access, breakpoints, etc), it shouldn't be too much effort.

Thanks,
Warren


  
-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx 
[mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of ext Michael Jackson
Sent: Friday, April 09, 2010 10:06 AM
To: CDT General developers list.
Subject: Re: [cdt-dev] Possible to use the 
qtc-debugging-helper (Either DSF/CDI)

Thanks for the info. At _some_ level it would seem to be 
possible to add the functionality (even if it is a plugin of 
some kind). It would seem that the qtc-debugging-helper 
library sends back a response to a gdb request for the "value" 
or maybe the QtCreator gdb wrapper figures out that the user 
wants to look at a QString and then asks the library to dump 
the values and such based on the pointer? Dunno. Can't really 
follow along. I may inquire on the QtCreator Mailing list 
garner some more info.

--
Mike Jackson <www.bluequartz.net>

On Apr 9, 2010, at 10:36 AM, <Warren.Paul@xxxxxxxxx> wrote:

    
We've designed a powerful variable formatter in EDC which does the 
basics like being able to change the display in the details 
      
pain, but 
    
also optionally allowing the children of the variable to be 
      
changed as 
    
well.  It also will allow (not fully implemented yet) modifying the 
value in formatted form.  We will have support for Qt types in this 
solution (also not yet implemented).

Unfortunately I don't think this does much to help you out since EDC 
doesn't currently work on Mac, only Windows and Linux.  It would be 
great to have someone do a TCF debug agent on Mac though.  :)  Maybe 
you can focus your time on that and we'll provide the Qt formatting 
aspect?

I should mention that we really wanted to and tried to make this 
feature non-EDC specific, but there were some technically 
      
reasons why 
    
it wouldn't work that I can't recall right now. :)  It may be that 
only some of it is EDC specific, I'm not sure.  David Dubrow might 
chime in if he's listening.

Thanks,
Warren


      
-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx
[mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of ext 
        
Michael Jackson
    
Sent: Friday, April 09, 2010 9:20 AM
To: CDT General developers list.
Subject: Re: [cdt-dev] Possible to use the qtc-debugging-helper 
(Either DSF/CDI)

I forgot to mention that I am on "that troublesome platform, OS X"
where the only GDB that seems to work is the one from Apple 
        
which is 
    
like version 6.3 or something like that so using the Python Pretty 
Printers will not work for this particular platform.

Now obviously since QtCreator does this sort of thing DSF 
        
GDB should 
    
be able to be made to do it also. I just have absolutely NO idea 
where I would start looking. Even a hacked together proof 
        
of concept 
    
would motivate me to spend some late nights getting something 
together.

--
Mike Jackson <www.bluequartz.net>

On Apr 9, 2010, at 10:13 AM, Elmenthaler, Jens wrote:

        
If you use gdb, you might want to check the python pretty printers 
being supported by gdb 7.0 and later.

It effectively means to translate your qtc-debugging-helper
          
library to
        
python pretty printers, but this might be valuable anyway.

Both gdb integrations (DSF GDB would require the upcoming CDT 7.0) 
have basic support for the pretty printers. Basic support 
          
means the 
    
info provided by the pretty printers appears in the 
          
details pane of 
    
variables and expressions view. But the children and
          
variables are not
        
the ones provided by the pretty printers.

I'm working on fully enabling them in the variables and 
          
expressions 
    
view (bug302121). That, however, will only work in DSF GDB.

Jens.

          
-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev- 
bounces@xxxxxxxxxxx] On Behalf Of Michael Jackson
Sent: Freitag, 9. April 2010 16:04
To: CDT General developers list.
Subject: [cdt-dev] Possible to use the 
            
qtc-debugging-helper (Either
    
DSF/CDI)


 I do a bunch of Qt programming and I prefer to use 
            
Eclipse CDT to 
    
do my programming. The major hurdle that I have currently
            
is trying
        
to
debug Qt based code. Due to the design of the Qt classes when 
trying to get the "value" of things like a QString gdb will just
            
send back a
        
pointer address that isn't really helpful. With Qt-Creator the 
engineers at Nokia have implemented the qtc-debugging-helper 
library which your project can link against.

 What I was wondering would be what type of code updates to CDT 
(Either in CDI or DSF) would have to go into place in oder to 
effectively use the code contained in the qtc-debugging-helper 
library? Looking through the qtc-debugging-helper library 
            
it seems 
    
there are "pretty-printers" for the Qt Classes which can then be 
piped back to the IDE making the request to display more helpful 
values of a class rather then the internal pointer.

 I am motivated enough to start hacking in CDT to at least figure 
out if this type of thing is even possible. Even better
            
would be some
        
help from Nokia to point me in the right direction ;-) ***

Thanks
___________________________________________________________
Mike Jackson                      www.bluequartz.net
Principal Software Engineer       mike.jackson@xxxxxxxxxxxxxx
BlueQuartz Software               Dayton, Ohio

*** I know this is basically helping out a rival product
            
(QtCreator
        
vs
Eclipse CDT) but I think would still be seen as a Win-Win for all 
parties.
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
            
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
          
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
        
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
      
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
    
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
  


Back to the top