make csharp exception message detailed by adding location and backtrace 85/187285/5
authordongsug.song <dongsug.song@samsung.com>
Tue, 21 Aug 2018 12:38:05 +0000 (21:38 +0900)
committerdongsug.song <dongsug.song@samsung.com>
Wed, 29 Aug 2018 09:04:58 +0000 (18:04 +0900)
Change-Id: I7628735b5565d3916265050adac8ccf308c1068a
Signed-off-by: dongsug.song <dongsug.song@samsung.com>
dali/public-api/common/dali-common.cpp [changed mode: 0644->0755]
dali/public-api/common/dali-common.h

old mode 100644 (file)
new mode 100755 (executable)
index 14e362b..7117774
@@ -110,6 +110,13 @@ DALI_CORE_API DaliException::DaliException( const char* location, const char* co
 
   DALI_LOG_ERROR_NOFN("Backtrace:\n");
 
+  std::string tmpString("\n=== DALi Native Excetion Info ===");
+  //appending condition
+  tmpString.append("\nCONDITION: ");
+  tmpString.append(condition);
+  //appending back-trace
+  tmpString.append("\nBACKTRACE: \n");
+
   void* frameArray[MAX_NUM_STACK_FRAMES];
   int nSize = backtrace(frameArray, MAX_NUM_STACK_FRAMES);
   char** symbols = backtrace_symbols(frameArray, nSize);
@@ -117,10 +124,20 @@ DALI_CORE_API DaliException::DaliException( const char* location, const char* co
   {
     std::string demangled_symbol = Demangle(symbols[i]);
     DALI_LOG_ERROR_NOFN("[%02d]   %s\n", i, demangled_symbol.c_str() );
+
+    tmpString.append("[");
+    tmpString.append(std::to_string(i));
+    tmpString.append("]  ");
+    tmpString.append(demangled_symbol);
+    tmpString.append("\n");
   }
   free(symbols);
-}
 
+  tmpString.append("=================================\n\0");
+
+  info = static_cast<char*>(malloc( tmpString.size() * sizeof(char)) );
+  strncpy(info, tmpString.c_str(), tmpString.size());
+}
 
 #else // BACKTRACE_ENABLED
 
index 4b7c4aa..5b69fab 100755 (executable)
@@ -116,6 +116,8 @@ public:
 
   const char* location;
   const char* condition;
+
+  char* info;
 };
 
 /**