diff --git a/meson.build b/meson.build
index 0ebde38..0510bad 100644
--- a/meson.build
+++ b/meson.build
@@ -2,6 +2,7 @@
     'phosphor-objmgr',
     'c', 'cpp',
     default_options: [
+        'buildtype=debugoptimized',
         'cpp_std=c++20',
         'warning_level=3',
         'werror=true',
@@ -15,6 +16,11 @@
 phosphor_dbus_interfaces = dependency('phosphor-dbus-interfaces')
 sdbusplus = dependency('sdbusplus')
 
+
+if get_option('buildtype').startswith('debug')
+    add_project_arguments('-DMAPPER_ENABLE_DEBUG', language : 'cpp')
+endif
+
 if get_option('tests').enabled()
     gtest = dependency('gtest', main: true, disabler: true, required: false)
     gmock = dependency('gmock', disabler: true, required: false)
diff --git a/src/main.cpp b/src/main.cpp
index 65de2ad..81bba2b 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -71,7 +71,7 @@
     InProgressIntrospect(
         sdbusplus::asio::connection* systemBus, boost::asio::io_context& io,
         const std::string& processName, AssociationMaps& am
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
         ,
         std::shared_ptr<std::chrono::time_point<std::chrono::steady_clock>>
             globalStartTime
@@ -79,7 +79,7 @@
         ) :
         systemBus(systemBus),
         io(io), processName(processName), assocMaps(am)
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
         ,
         globalStartTime(std::move(globalStartTime)),
         processStartTime(std::chrono::steady_clock::now())
@@ -90,7 +90,7 @@
         try
         {
             sendIntrospectionCompleteSignal(systemBus, processName);
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
             std::chrono::duration<float> diff =
                 std::chrono::steady_clock::now() - processStartTime;
             std::cout << std::setw(50) << processName << " scan took "
@@ -124,7 +124,7 @@
     boost::asio::io_context& io;
     std::string processName;
     AssociationMaps& assocMaps;
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
     std::shared_ptr<std::chrono::time_point<std::chrono::steady_clock>>
         globalStartTime;
     std::chrono::time_point<std::chrono::steady_clock> processStartTime;
@@ -258,7 +258,7 @@
     sdbusplus::asio::connection* systemBus, boost::asio::io_context& io,
     InterfaceMapType& interfaceMap, const std::string& processName,
     AssociationMaps& assocMaps,
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
     std::shared_ptr<std::chrono::time_point<std::chrono::steady_clock>>
         globalStartTime,
 #endif
@@ -269,7 +269,7 @@
         std::shared_ptr<InProgressIntrospect> transaction =
             std::make_shared<InProgressIntrospect>(systemBus, io, processName,
                                                    assocMaps
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
                                                    ,
                                                    globalStartTime
 #endif
@@ -318,7 +318,7 @@
             }
             // Try to make startup consistent
             std::sort(processNames.begin(), processNames.end());
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
             std::shared_ptr<std::chrono::time_point<std::chrono::steady_clock>>
                 globalStartTime = std::make_shared<
                     std::chrono::time_point<std::chrono::steady_clock>>(
@@ -331,7 +331,7 @@
                 {
                     startNewIntrospect(systemBus, io, interfaceMap, processName,
                                        assocMaps,
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
                                        globalStartTime,
 #endif
                                        objectServer);
@@ -692,7 +692,7 @@
 
             if (!newOwner.empty())
             {
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
                 auto transaction = std::make_shared<
                     std::chrono::time_point<std::chrono::steady_clock>>(
                     std::chrono::steady_clock::now());
@@ -703,7 +703,7 @@
                     nameOwners[newOwner] = name;
                     startNewIntrospect(systemBus.get(), io, interfaceMap, name,
                                        associationMaps,
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
                                        transaction,
 #endif
                                        server);
