mirror of
https://gitee.com/openharmony/arkcompiler_ets_runtime
synced 2024-10-07 16:13:49 +00:00
打印C++栈时,带上buildID信息
issues:https://gitee.com/openharmony/arkcompiler_ets_runtime/issues/I8YDTP Signed-off-by: rentangyu <rentangyu@huawei.com>
This commit is contained in:
parent
3655959dfb
commit
73140814b3
@ -246,10 +246,15 @@ JSHandle<EcmaString> ErrorHelper::BuildEcmaStackTrace(JSThread *thread, std::str
|
||||
LOG_ECMA(DEBUG) << data;
|
||||
// unconverted stack
|
||||
stack = data;
|
||||
auto ecmaVm = thread->GetEcmaVM();
|
||||
// sourceMap callback
|
||||
auto cb = thread->GetEcmaVM()->GetSourceMapCallback();
|
||||
if (cb != nullptr) {
|
||||
data = cb(data.c_str());
|
||||
auto sourceMapcb = ecmaVm->GetSourceMapCallback();
|
||||
if (sourceMapcb != nullptr && !data.empty()) {
|
||||
data = sourceMapcb(data.c_str());
|
||||
}
|
||||
auto nativeStackcb = ecmaVm->GetNativeStackCallback();
|
||||
if (nativeStackcb != nullptr && data.empty()) {
|
||||
data = nativeStackcb();
|
||||
}
|
||||
|
||||
ObjectFactory *factory = thread->GetEcmaVM()->GetFactory();
|
||||
|
@ -27,9 +27,6 @@
|
||||
#if defined(PANDA_TARGET_OHOS)
|
||||
#include "ecmascript/extractortool/src/extractor.h"
|
||||
#endif
|
||||
#if defined(ENABLE_EXCEPTION_BACKTRACE)
|
||||
#include "ecmascript/platform/backtrace.h"
|
||||
#endif
|
||||
|
||||
namespace panda::ecmascript {
|
||||
std::string JsStackInfo::BuildMethodTrace(Method *method, uint32_t pcOffset, bool enableStackSourceFile)
|
||||
@ -129,13 +126,6 @@ std::string JsStackInfo::BuildJsStackTrace(JSThread *thread, bool needNative)
|
||||
data.append(" at native method (").append(strm.str()).append(")\n");
|
||||
}
|
||||
}
|
||||
if (data.empty()) {
|
||||
#if defined(ENABLE_EXCEPTION_BACKTRACE)
|
||||
std::ostringstream stack;
|
||||
Backtrace(stack, false, true);
|
||||
data = stack.str();
|
||||
#endif
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
|
@ -92,6 +92,7 @@ class Jit;
|
||||
using NativePtrGetter = void* (*)(void* info);
|
||||
using SourceMapCallback = std::function<std::string(const std::string& rawStack)>;
|
||||
using SourceMapTranslateCallback = std::function<bool(std::string& url, int& line, int& column)>;
|
||||
using NativeStackCallback = std::function<std::string()>;
|
||||
using ResolveBufferCallback = std::function<bool(std::string dirPath, uint8_t **buff, size_t *buffSize)>;
|
||||
using UnloadNativeModuleCallback = std::function<bool(const std::string &moduleKey)>;
|
||||
using RequestAotCallback =
|
||||
@ -298,6 +299,16 @@ public:
|
||||
return sourceMapTranslateCallback_;
|
||||
}
|
||||
|
||||
void SetNativeStackCallback(NativeStackCallback cb)
|
||||
{
|
||||
nativeStackCallback_ = cb;
|
||||
}
|
||||
|
||||
NativeStackCallback GetNativeStackCallback() const
|
||||
{
|
||||
return nativeStackCallback_;
|
||||
}
|
||||
|
||||
size_t GetNativePointerListSize()
|
||||
{
|
||||
return nativePointerList_.size();
|
||||
@ -639,6 +650,7 @@ private:
|
||||
NativePtrGetter nativePtrGetter_ {nullptr};
|
||||
SourceMapCallback sourceMapCallback_ {nullptr};
|
||||
SourceMapTranslateCallback sourceMapTranslateCallback_ {nullptr};
|
||||
NativeStackCallback nativeStackCallback_ {nullptr};
|
||||
void *loop_ {nullptr};
|
||||
|
||||
// resolve path to get abc's buffer
|
||||
|
@ -96,6 +96,7 @@ using JSTaggedType = uint64_t;
|
||||
using ConcurrentCallback = void (*)(Local<JSValueRef> result, bool success, void *taskInfo, void *data);
|
||||
using SourceMapCallback = std::function<std::string(const std::string& rawStack)>;
|
||||
using SourceMapTranslateCallback = std::function<bool(std::string& url, int& line, int& column)>;
|
||||
using NativeStackCallback = std::function<std::string()>;
|
||||
using DeviceDisconnectCallback = std::function<bool()>;
|
||||
|
||||
#define ECMA_DISALLOW_COPY(className) \
|
||||
@ -1262,6 +1263,7 @@ public:
|
||||
static void SetNativePtrGetter(EcmaVM *vm, void* cb);
|
||||
static void SetSourceMapCallback(EcmaVM *vm, SourceMapCallback cb);
|
||||
static void SetSourceMapTranslateCallback(EcmaVM *vm, SourceMapTranslateCallback cb);
|
||||
static void SetNativeStackCallback(EcmaVM *vm, NativeStackCallback cb);
|
||||
static void SetHostEnqueueJob(const EcmaVM* vm, Local<JSValueRef> cb);
|
||||
static void InitializeIcuData(const ecmascript::JSRuntimeOptions &options);
|
||||
static void InitializeMemMapAllocator();
|
||||
|
@ -2724,6 +2724,11 @@ void JSNApi::SetSourceMapTranslateCallback(EcmaVM *vm, SourceMapTranslateCallbac
|
||||
vm->SetSourceMapTranslateCallback(callback);
|
||||
}
|
||||
|
||||
void JSNApi::SetNativeStackCallback(EcmaVM *vm, NativeStackCallback callback)
|
||||
{
|
||||
vm->SetNativeStackCallback(callback);
|
||||
}
|
||||
|
||||
void JSNApi::SetSourceMapCallback(EcmaVM *vm, SourceMapCallback callback)
|
||||
{
|
||||
vm->SetSourceMapCallback(callback);
|
||||
|
Loading…
Reference in New Issue
Block a user