On 24/05/2011 08:14, Mattias Gaertner wrote:
On Tue, 24 May 2011 00:35:19 +0100
Martin<[email protected]>  wrote:

[...]
(^^PChar(Sender)^+3)^+1

It should give you the real classname
Can this be used in the debugger hint, when moving the mouse over 'Sender'?

It should work on all modern gdb, 32 and 64 bit. PChar is not guaranteed to be defined, but can be replaced by ^char

One problem is that the string is not 0 terminated, so you get trash at the ned => it is a shortstring. If shortstring is defined (the debugger knows internally) then Shortstring can be used.
Otherwhise the length should be (not tested):  (^^^Byte(Sender)^+3)^^
Basically class name is the 3rd entry in the PVMT

It should probably be added to the debugger => e.g to GDBTypeInfo
But I see no problem with putting it in the IDE code until then.

But I only want to evaluate it , if really requested => watches eval already takes long enough.

There is a flag that can be passed to GDBEvaluate, it could be used to trigger the info => ultimately type-info should keep a reference to GDB, so it can fetch info, on access (but then it neds a callback, since info may not be immediately avail...

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to