*
*/
+#include <typeinfo>
+#include <cxxabi.h>
#include <FBase.h>
#include "daprobe.h"
#include "probeinfo.h"
int blockresult;
bool bfiltering = false;
void *tmpPtr;
+ void *ret;
if (!ThreadProcp) {
probeBlockStart();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_void___ThreadImpl__ThreadProc_void__params_,
"p", voidp_to_uint64(params));
- PACK_COMMON_END((unsigned int)pSelf, 0, blockresult);
- PACK_THREAD((unsigned int)pThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_INTERNAL_START);
+ PACK_COMMON_END('p', 0, 0, blockresult);
+ PACK_THREAD((unsigned int)pThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_INTERNAL_START, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
preBlockEnd();
probingEnd();
}
// all probe should be reachable inside thread start_routine (user implemented Thread::Run)
- (ThreadProcp)(params);
+ ret = (ThreadProcp)(params);
//
if (postBlockBegin(blockresult)) {
probingStart();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_void___ThreadImpl__ThreadProc_void__params_,
"p", voidp_to_uint64(params));
- PACK_COMMON_END((unsigned int)pSelf, 0, blockresult);
- PACK_THREAD((unsigned int)pThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_INTERNAL_STOP);
+ PACK_COMMON_END('p', ret, 0, blockresult);
+ PACK_THREAD((unsigned int)pThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_INTERNAL_STOP, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_Thread__Sleep_long_milliSeconds_,
"x", (uint64_t)(milliSeconds));
- PACK_COMMON_END(0, 0, blockresult);
- PACK_THREAD((unsigned int)currentThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_WAIT_START);
+ PACK_COMMON_END('x', 0, 0, blockresult);
+ PACK_THREAD((unsigned int)currentThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_WAIT_START, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
preBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_Thread__Yield_void_,
"x", (uint64_t)(milliSeconds));
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int)currentThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_WAIT_END);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int)currentThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_WAIT_END, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_Thread__Thread__GetCurrentThread_void_,
"", 0);
- PACK_COMMON_END((unsigned int)currentThread, res, blockresult);
- PACK_THREAD((unsigned int)currentThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_OTHER);
+ PACK_COMMON_END('p', voidp_to_uint64(currentThread),
+ res, blockresult);
+ PACK_THREAD((unsigned int)currentThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_OTHER, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_Thread__Yield_void_,
"", 0);
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int)currentThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_OTHER);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int)currentThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_OTHER, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_Thread__Exit_int_exitCode_,
"d", exitCode);
- PACK_COMMON_END(0, 0, blockresult);
- PACK_THREAD((unsigned int)currentThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_EXIT);
+ PACK_COMMON_END('n', 0, 0, blockresult);
+ PACK_THREAD((unsigned int)currentThread, THREAD_TIZENTHREAD_WORKER, THREAD_API_EXIT, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
preBlockEnd();
API_ID_result_Thread__Construct_ThreadType_threadType__long_stackSize__ThreadPriority_priority_,
"dxd", threadType, (uint64_t)(stackSize),
priority);
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_NEW);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_NEW, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_Thread__Construct_long_stackSize__ThreadPriority_priority_,
"xd", (uint64_t)(stackSize), priority);
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_NEW);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_NEW, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_Thread__Construct_const_Tizen__Base__String__name__long_stackSize__ThreadPriority_priority_,
"sxd", temp, (uint64_t)(stackSize), priority);
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_NEW);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_NEW, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
API_ID_result_Thread__Construct_const_Tizen__Base__String__name__ThreadType_threadType__long_stackSize__ThreadPriority_priority_,
"sdxd", temp, threadType,
(uint64_t)(stackSize), priority);
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_NEW);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_NEW, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
API_ID_result_Thread__Construct_IRunnable__target__long_stackSize__ThreadPriority_priority_,
"xxd", (uint64_t)(&target),
(uint64_t)(stackSize), priority);
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_NEW);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_NEW, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
API_ID_result_Thread__Construct_const_Tizen__Base__String__name__IRunnable__target__long_stackSize__ThreadPriority_priority_,
"sxxd", temp, (uint64_t)(&target),
(uint64_t)(stackSize), priority);
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_NEW);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_NEW, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_Thread__GetExitCode_int__exitCode__const,
"d", exitCode);
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_OTHER);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_OTHER, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_const_Tizen__Base__String___Thread__GetName_void__const,
"", 0);
- PACK_COMMON_END(ret.GetPointer(), res, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_OTHER);
+ PACK_COMMON_END('p', ret.GetPointer(), res, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_OTHER, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_Thread__Join_void_,
"", 0);
- PACK_COMMON_END(0, 0, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_WAIT_START);
+ PACK_COMMON_END('x', 0, 0, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_WAIT_START, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
preBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_Thread__Join_void_,
"", 0);
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_WAIT_END);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_WAIT_END, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
ret = (this->*Startp)();
//
if (postBlockBegin(blockresult)) {
-
+ int status;
+ char *class_name = abi::__cxa_demangle(typeid(*this).name(),0,0,&status);
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_Thread__Start_void_,
"", 0);
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_START);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_START, class_name);
FLUSH_LOCAL_BUF();
-
+ free(class_name);
postBlockEnd();
}
return ret;
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_Thread__Stop_void_,
"", 0);
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_STOP);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_WORKER, THREAD_API_STOP, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_EventDrivenThread__Construct_long_stackSize__ThreadPriority_priority_,
"xd", (uint64_t)(stackSize), priority);
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_EVENTDRIVEN, THREAD_API_NEW);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_EVENTDRIVEN, THREAD_API_NEW, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_EventDrivenThread__Construct_const_Tizen__Base__String__name__long_stackSize__ThreadPriority_priority_,
"sx", temp, (uint64_t)(stackSize));
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_EVENTDRIVEN, THREAD_API_NEW);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_EVENTDRIVEN, THREAD_API_NEW, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();
PACK_COMMON_BEGIN(MSG_PROBE_THREAD,
API_ID_result_EventDrivenThread__Quit__,
"", 0);
- PACK_COMMON_END(ret, ret, blockresult);
- PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_EVENTDRIVEN, THREAD_API_STOP);
+ PACK_COMMON_END('x', ret, ret, blockresult);
+ PACK_THREAD((unsigned int) this, THREAD_TIZENTHREAD_EVENTDRIVEN, THREAD_API_STOP, THREAD_CLASS_BLANK);
FLUSH_LOCAL_BUF();
postBlockEnd();