|Re: [cdt-dev] Possible to use the qtc-debugging-helper (Either DSF/CDI)|
A simpler approach would be to do what bug 275238 did, which was to add a new value format, which evaluated an expression differently than the standard method.
I don't know anything about how the qtc-debugging-helper works in GDB so it's hard for me to recommend a specific solution.
Michael Jackson wrote:
It has been a while since I hacked on CDT. I take it I'll need a Helios-PDE installation with the CDT Sources checked out so I can self host? Off to to wiki to re-figure this out again..If you describe how to access the qtc-debugger-helper from gdb I could let you know if this would be easy and possibly save you the trouble.
Pawel, could you provide just a bit more details about where to start hacking. I guess if I were to put a breakpoint in DSF/GDB to start investigating the sequence of events to get a value from the debugger and place it into the gui (or variable where it would end up in the gui) where would that be. Many Thanks___________________________________________________________ Mike Jackson www.bluequartz.net On Apr 9, 2010, at 12:14 PM, Pawel Piech wrote: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 detailspain, butalso optionally allowing the children of the variable to bechanged aswell. 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 technicallyreasons whyit 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 extMichael JacksonSent: 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 Applewhich islike 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 DSFGDB shouldbe able to be made to do it also. I just have absolutely NO idea where I would start looking. Even a hacked together proofof conceptwould 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-helperlibrary topython 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 supportmeans theinfo provided by the pretty printers appears in thedetails pane ofvariables and expressions view. But the children andvariables are notthe ones provided by the pretty printers. I'm working on fully enabling them in the variables andexpressionsview (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 theqtc-debugging-helper (EitherDSF/CDI) I do a bunch of Qt programming and I prefer to useEclipse CDT todo my programming. The major hurdle that I have currentlyis tryingto 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 justsend back apointer 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 libraryit seemsthere 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 betterwould be somehelp 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(QtCreatorvs 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
Back to the top