diff --git a/source/ArmarXGui/gui-plugins/RemoteGuiPlugin/RemoteGuiWidgetController.cpp b/source/ArmarXGui/gui-plugins/RemoteGuiPlugin/RemoteGuiWidgetController.cpp
index a0d96940830ab3f12a9ddd4b5a017376c00c4eff..be06ffa0f0c79da87c3271206b818500e0e6262f 100644
--- a/source/ArmarXGui/gui-plugins/RemoteGuiPlugin/RemoteGuiWidgetController.cpp
+++ b/source/ArmarXGui/gui-plugins/RemoteGuiPlugin/RemoteGuiWidgetController.cpp
@@ -524,6 +524,7 @@ namespace armarx
 
     QWidget* RemoteGuiWidgetController::createWidgetFromDescription(const std::string& tabId, const RemoteGui::WidgetPtr& desc)
     {
+        ARMARX_TRACE;
         QWidget* widget = nullptr;
 
         RemoteGui::ValueMap& values = tabValueMap[tabId];
@@ -532,10 +533,12 @@ namespace armarx
 
         RemoteGui::CreateWidgetCallback createChild = [this, tabId](RemoteGui::WidgetPtr const & desc) -> QWidget *
         {
+            ARMARX_TRACE;
             return this->createWidgetFromDescription(tabId, desc);
         };
 
         {
+            ARMARX_TRACE;
             // Do not trigger external updates when initial values are set
             InternalUpdateGuard guard(&internalUpdate);
 
@@ -551,6 +554,7 @@ namespace armarx
         // Widgets without a name cannot be referred to later
         if (!desc->name.empty())
         {
+            ARMARX_TRACE;
             auto result = guiWidgets[tabId].emplace(desc->name, widget);
             bool inserted = result.second;
             if (inserted)
@@ -560,6 +564,7 @@ namespace armarx
             }
             else
             {
+                ARMARX_TRACE;
                 ARMARX_WARNING << "Tried to add a widget with duplicate name '" << desc->name
                                << "' to remote tab ID '" << tabId << "'";
             }
diff --git a/source/ArmarXGui/libraries/RemoteGui/Storage.h b/source/ArmarXGui/libraries/RemoteGui/Storage.h
index 027bdac49ecb1bdd9aaa590bf6da56782383f6d5..ec2df335aba40d8b2bfc76c3a80bf307e06a5ea0 100644
--- a/source/ArmarXGui/libraries/RemoteGui/Storage.h
+++ b/source/ArmarXGui/libraries/RemoteGui/Storage.h
@@ -81,12 +81,14 @@ namespace armarx::RemoteGui
     template <>
     inline std::nullptr_t getSingleValue<std::nullptr_t>(RemoteGui::ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         return nullptr;
     }
 
     template <>
     inline bool getSingleValue<bool>(ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         if (value.type != VALUE_VARIANT_BOOL)
         {
             throw LocalException()
@@ -99,6 +101,7 @@ namespace armarx::RemoteGui
     template <>
     inline int getSingleValue<int>(ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         if (value.type != VALUE_VARIANT_INT)
         {
             throw LocalException()
@@ -111,6 +114,7 @@ namespace armarx::RemoteGui
     template <>
     inline float getSingleValue<float>(ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         if (value.type != VALUE_VARIANT_FLOAT)
         {
             throw LocalException()
@@ -123,6 +127,7 @@ namespace armarx::RemoteGui
     template <>
     inline std::string getSingleValue<std::string>(ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         if (value.type != VALUE_VARIANT_STRING)
         {
             throw LocalException()
@@ -135,6 +140,7 @@ namespace armarx::RemoteGui
     template <>
     inline Eigen::Vector3f getSingleValue<Eigen::Vector3f>(ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         if (value.type != VALUE_VARIANT_VECTOR3)
         {
             throw LocalException()
@@ -153,6 +159,7 @@ namespace armarx::RemoteGui
     template <>
     inline Eigen::Matrix4f getSingleValue<Eigen::Matrix4f>(ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         if (value.type != VALUE_VARIANT_MATRIX4)
         {
             throw LocalException()
@@ -176,6 +183,7 @@ namespace armarx::RemoteGui
     template <typename T>
     T getAndReturnValue(ValueMap const& values, std::string const& name)
     {
+        ARMARX_TRACE;
         try
         {
             ValueVariant const& variantValue = values.at(name);
diff --git a/source/ArmarXGui/libraries/RemoteGui/TypedWidget.h b/source/ArmarXGui/libraries/RemoteGui/TypedWidget.h
index 449d6cd0c78ff33990280ec315171abc66bd242b..55a4b8f2c9beb6f22e6bfb2c99a815b2d6dd0a4e 100644
--- a/source/ArmarXGui/libraries/RemoteGui/TypedWidget.h
+++ b/source/ArmarXGui/libraries/RemoteGui/TypedWidget.h
@@ -46,6 +46,7 @@ namespace armarx::RemoteGui
                               const QObject* stateChangeReceiver,
                               const char* stateChangeSlot) const override
         {
+            ARMARX_TRACE;
             auto concreteDesc = dynamic_cast<RemoteWidgetT const*>(&desc);
             ARMARX_CHECK_EXPRESSION(concreteDesc != nullptr);
 
@@ -65,6 +66,7 @@ namespace armarx::RemoteGui
                                QWidget* widget,
                                ValueVariant const& value) const override
         {
+            ARMARX_TRACE;
             auto concreteDesc = dynamic_cast<RemoteWidgetT const*>(&desc);
             ARMARX_CHECK_EXPRESSION(concreteDesc != nullptr);
 
@@ -81,6 +83,7 @@ namespace armarx::RemoteGui
         virtual ValueVariant handleGuiChange(Widget const& desc,
                                              QWidget* widget) const override
         {
+            ARMARX_TRACE;
             ARMARX_CHECK_EXPRESSION(widget != nullptr);
             const auto dumpParamInfo = ARMARX_STREAM_PRINTER
             {
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/BoolWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/BoolWidgets.h
index 35126f04e5a3fea7f9f9737815648d28d0d59203..c5646eba2c30f5ddadf455d58b989e45a8c6eda4 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/BoolWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/BoolWidgets.h
@@ -12,6 +12,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
             widget->setToolTip(QString::fromStdString(desc.toolTip));
             widget->setText(toQString(desc.label));
@@ -37,6 +38,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
             widget->setToolTip(QString::fromStdString(desc.toolTip));
             widget->setText(toQString(desc.label));
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/FloatWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/FloatWidgets.h
index 4e350b84225020daf93dfa1632fcdb112fecf7fd..b2357322b34f706af8a7eddb9511ca1fba15598d 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/FloatWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/FloatWidgets.h
@@ -31,6 +31,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
 
             widget->setToolTip(QString::fromStdString(desc.toolTip));
@@ -74,6 +75,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT(nullptr);
 
             widget->setToolTip(QString::fromStdString(desc.toolTip));
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/IntegerWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/IntegerWidgets.h
index 5b88778567e35f90b4d2e215195b74189f8a609b..9b6d5fe8a126a9dcb1ce609b96e78e1b5e7a2329 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/IntegerWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/IntegerWidgets.h
@@ -13,6 +13,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
 
             widget->setToolTip(QString::fromStdString(desc.toolTip));
@@ -40,6 +41,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
 
             widget->setToolTip(QString::fromStdString(desc.toolTip));
@@ -69,6 +71,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
             widget->setToolTip(QString::fromStdString(desc.toolTip));
             widget->setText(toQString(desc.label));
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/LayoutWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/LayoutWidgets.h
index 94bb57cc95659b71234591ea170dd5907e730caf..80e68ebbcacf0d47826e79bf66e384db3e2af503 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/LayoutWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/LayoutWidgets.h
@@ -14,6 +14,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QGroupBox* widget = new QGroupBox;
             widget->setTitle(toQString(desc.label));
             widget->setCheckable(true);
@@ -64,6 +65,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidget();
 
             QVBoxLayout* layout = new QVBoxLayout(widget);
@@ -84,6 +86,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidget();
 
             QHBoxLayout* layout = new QHBoxLayout(widget);
@@ -103,6 +106,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             ARMARX_CHECK_GREATER(desc.columns, 0);
             switch (desc.children.size())
             {
@@ -133,6 +137,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidget();
 
             QGridLayout* layout = new QGridLayout(widget);
@@ -172,6 +177,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidget();
 
             QGridLayout* layout = new QGridLayout(widget);
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Matrix4fWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Matrix4fWidgets.h
index d7948ddc2857f7bcd7791ed186c0cc5fce8a8382..cb701e877817a231effd52f61e7ba413f61b3461 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Matrix4fWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Matrix4fWidgets.h
@@ -46,6 +46,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidget* widget = new QWidget;
             QHBoxLayout* l = new QHBoxLayout;
             l->setContentsMargins(0, 0, 0, 0);
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StaticWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StaticWidgets.h
index f2b41c2be9ecc4f84d92297663192d98485b3e0e..9b8d4e860815e672d1743d254f93f4bad7e0fd41 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StaticWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StaticWidgets.h
@@ -11,6 +11,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
             widget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
             widget->setToolTip(QString::fromStdString(desc.toolTip));
@@ -33,6 +34,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidget();
 
             widget->setLayout(new QVBoxLayout);
@@ -48,6 +50,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidget();
 
             widget->setLayout(new QVBoxLayout);
@@ -63,6 +66,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QFrame();
 
             widget->setFrameShape(QFrame::HLine);
@@ -76,6 +80,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QFrame();
 
             widget->setFrameShape(QFrame::VLine);
@@ -90,6 +95,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             auto widget = new QWidget();
             widget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
             return widget;
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StringWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StringWidgets.h
index b0579e1e265bedc92b19f6682d6ca3ecb8d8d6ff..db9cacbbda9053230853c002c96e630874a60869 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StringWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StringWidgets.h
@@ -12,6 +12,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
             widget->setToolTip(QString::fromStdString(desc.toolTip));
 
@@ -36,14 +37,16 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
             widget->setToolTip(QString::fromStdString(desc.toolTip));
 
             for (std::string const& option : desc.options)
             {
+                ARMARX_TRACE;
                 widget->addItem(toQString(option));
             }
-
+            ARMARX_TRACE;
             QObject::connect(widget, SIGNAL(currentIndexChanged(int)), stateChangeReceiver, stateChangeSlot);
 
             return widget;
@@ -51,6 +54,7 @@ namespace armarx::RemoteGui
 
         static void updateGui(RemoteWidgetT const& desc, QWidgetT* widget, ValueT const& value)
         {
+            ARMARX_TRACE;
             int index = widget->findText(toQString(value));
             if (index >= 0)
             {
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Vector3fWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Vector3fWidgets.h
index b89dc0502426898a239dbf09819683151341f3fb..ff00a060cc4242e0a5decd8228b90ad5dadecfab 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Vector3fWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Vector3fWidgets.h
@@ -35,6 +35,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidget* widget = new QWidget;
             widget->setToolTip(QString::fromStdString(desc.toolTip));
             QHBoxLayout* l = new QHBoxLayout;
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetRegister.cpp b/source/ArmarXGui/libraries/RemoteGui/WidgetRegister.cpp
index eec0a9fc6424ed6f7fd19554fbd6238ea04d4351..57fd368cae1d4ceca8481667a47fdc97ef5cb95b 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetRegister.cpp
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetRegister.cpp
@@ -59,6 +59,7 @@ namespace armarx::RemoteGui
 
     const WidgetHandler& getWidgetHandler(WidgetPtr const& desc)
     {
+        ARMARX_TRACE;
         static const WidgetRegister widgetRegister = createWidgetRegister();
 
         auto descPtr = desc.get();