[Interest] Logging meta call events

Thiago Macieira thiago.macieira at intel.com
Tue Feb 17 23:03:54 CET 2015


On Tuesday 17 February 2015 22:54:29 Bernhard wrote:
> Hi!
> 
> I need to log meta call events. Since QMetaCallEvent is private in Qt this
> seems to be impossible. Still I think it would be a very important feature.
> 
> Here is the more detailed problem description on SO:
> http://stackoverflow.com/q/28565258/1421332
> 
> Does someone know how this can be achieved?

Why do you need to log meta call events? Why do you care that a Qt class 
internally called another one via meta call? There are a lot of 
QMetaObject::invokeMethod, QTimer::singleShot and plain event posting inside 
Qt.

This question sounds to me like an XY situation: you have a problem (X) and 
you think you need to take a course of action (Y) to solve it, so you ask us 
about doing Y. You should instead describe situation X so we may offer 
alternatives.

If you REALLY need this, you can use the QSignalSpy hook. It won't log direct 
meta calls like QMetaObject::invokeMethod and events, but it will give you 
access to all signals and slots as they're called. But you're on your own if 
you do it. Or instead make a unit test with QtTest and pass the -vs option, 
which will cause it to log for you.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Interest mailing list