Correct snprintf format string in Backtrace::buildBacktrace() method 11/25011/3
authorAdam Malinowski <a.malinowsk2@partner.samsung.com>
Fri, 25 Jul 2014 09:31:28 +0000 (11:31 +0200)
committerZofia Abramowska <z.abramowska@samsung.com>
Fri, 25 Jul 2014 16:33:52 +0000 (09:33 -0700)
Additionally use static_cast and reduce scope of local variable.

Change-Id: Idbaf8f6622ae8bf4e2610e378c6a001ea3a0acbf

src/common/log/Backtrace.cpp

index d2e9550..36b3c27 100644 (file)
@@ -62,7 +62,6 @@ const std::string Backtrace::buildBacktrace(void) {
     char proc_name[BUFSIZ];
     char btstr[BUFSIZ];
     unw_word_t offp;
-    char *realname;
     int status;
 
     unw_getcontext(&uc);
@@ -73,11 +72,11 @@ const std::string Backtrace::buildBacktrace(void) {
         unw_get_reg(&cursor, UNW_REG_IP, &ip);
         unw_get_reg(&cursor, UNW_REG_SP, &sp);
         unw_get_proc_name(&cursor, proc_name, sizeof(proc_name), &offp);
-        realname = abi::__cxa_demangle(proc_name, 0, 0, &status);
+        char *realname = abi::__cxa_demangle(proc_name, 0, 0, &status);
         getSourceInfo(ip);
 
-        snprintf(btstr, sizeof(btstr), "ip = %lx, sp = %lx, %s, %s:%d\n",
-                (long) ip, (long) sp, realname ? realname : proc_name,
+        snprintf(btstr, sizeof(btstr), "ip = %p, sp = %p, %s, %s:%u\n",
+                ip, sp, realname ? realname : proc_name,
                 m_fileName, m_lineNumber);
         free(realname);
         backtrace += btstr;