1/* 2 * Copyright (c) Huawei Technologies Co., Ltd. 2020-2020. All rights reserved. 3 * Description: improve heap dump. 4 * Create: 2020/11/20 5 */ 6 7#ifndef HEAPDUMP_H 8#define HEAPDUMP_H 9 10#include "ecma-globals.h" 11#include "ecma-helpers.h" 12#include "jerryscript-core.h" 13 14#define REF_CNT_SHIFT 6 15 16FILE* GetHeapdumpFile(void); 17bool GetHeapdumpTracing(void); 18void SetHeapdumpTraring(bool flag); 19 20#define LogHeapdump(...) do { fprintf(GetHeapdumpFile(), __VA_ARGS__); } while (0) 21 22typedef enum { 23 HEAPDUMP_OBJECT_SIMPLE, 24 HEAPDUMP_OBJECT_GLOBAL, 25 HEAPDUMP_OBJECT_ROOT 26} heapdump_object_flags_t; 27 28void LogHeapdumpInit(const char* filepath); 29void LogHeapdumpClose(void); 30 31void DumpInfoObject(ecma_object_t* object, heapdump_object_flags_t flags); 32void DumpInfoLexEnv(const ecma_object_t* object); 33void DumpInfoFunction(const ecma_object_t* object); 34void DumpPropertyPair(ecma_property_pair_t* pair); 35 36#endif 37