MCPcopy Create free account
hub / github.com/KDAB/GammaRay / objectCreationSourceLocation

Method objectCreationSourceLocation

core/probe.cpp:975–994  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

973}
974
975SourceLocation Probe::objectCreationSourceLocation(const QObject *object)
976{
977 QObject *key = const_cast<QObject *>(object);
978 if (!s_listener()->constructionBacktracesForObjects.contains(key)) {
979 IF_DEBUG(std::cout << "No backtrace for object available" << object << "." << std::endl;)
980 return SourceLocation();
981 }
982
983 const auto &st = s_listener()->constructionBacktracesForObjects.value(key);
984 int distanceToQObject = 0;
985
986 const QMetaObject *metaObject = object->metaObject();
987 while (metaObject && metaObject != &QObject::staticMetaObject) {
988 distanceToQObject++;
989 metaObject = metaObject->superClass();
990 }
991
992 const auto frame = Execution::resolveOne(st, distanceToQObject + 1);
993 return frame.location;
994}
995
996Execution::Trace Probe::objectCreationStackTrace(QObject *object)
997{

Callers 2

creationLocationMethod · 0.80

Calls 4

SourceLocationClass · 0.85
superClassMethod · 0.80
valueMethod · 0.45
metaObjectMethod · 0.45

Tested by 1