Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
e7ee48fd
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e7ee48fd
编写于
12月 07, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enh: add tassert funcs
上级
bed68741
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
39 addition
and
11 deletion
+39
-11
include/os/os.h
include/os/os.h
+1
-0
include/os/osSystem.h
include/os/osSystem.h
+20
-0
include/util/tlog.h
include/util/tlog.h
+2
-2
source/dnode/mgmt/node_mgmt/src/dmMgmt.c
source/dnode/mgmt/node_mgmt/src/dmMgmt.c
+2
-0
source/util/src/tlog.c
source/util/src/tlog.c
+14
-9
未找到文件。
include/os/os.h
浏览文件 @
e7ee48fd
...
...
@@ -27,6 +27,7 @@ extern "C" {
#if !defined(WINDOWS)
#include <dirent.h>
#include <execinfo.h>
#include <libgen.h>
#include <sched.h>
#include <unistd.h>
...
...
include/os/osSystem.h
浏览文件 @
e7ee48fd
...
...
@@ -46,6 +46,26 @@ void taosSetTerminalMode();
int32_t
taosGetOldTerminalMode
();
void
taosResetTerminalMode
();
#if defined(LINUX)
#define taosPrintTrace(flags, level, dflag) \
{ \
void* array[100]; \
int32_t size = backtrace(array, 100); \
char** strings = backtrace_symbols(array, size); \
if (strings != NULL) { \
taosPrintLog(flags, level, dflag, "obtained %d stack frames", size); \
for (int32_t i = 0; i < size; i++) { \
taosPrintLog(flags, level, dflag, "frame:%d, %s", i, strings[i]); \
} \
} \
\
taosMemoryFree(strings); \
}
#else
#define taosPrintTrace(flags, level, dflag) \
{}
#endif
#ifdef __cplusplus
}
#endif
...
...
include/util/tlog.h
浏览文件 @
e7ee48fd
...
...
@@ -84,8 +84,8 @@ void taosPrintLongString(const char *flags, ELogLevel level, int32_t dflag, cons
;
bool
taosAssertLog
(
bool
condition
,
const
char
*
file
,
int32_t
line
,
const
char
*
format
,
...);
#define tAssert(...) (void)taosAssertLog(condition, __FILE__, __LINE__, __VA_ARGS__);
#define tAssertR(...) taosAssertLog(condition, __FILE__, __LINE__, __VA_ARGS__)
#define tAssert(
condition,
...) (void)taosAssertLog(condition, __FILE__, __LINE__, __VA_ARGS__);
#define tAssertR(
condition,
...) taosAssertLog(condition, __FILE__, __LINE__, __VA_ARGS__)
// clang-format off
#define uFatal(...) { if (uDebugFlag & DEBUG_FATAL) { taosPrintLog("UTL FATAL", DEBUG_FATAL, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }}
...
...
source/dnode/mgmt/node_mgmt/src/dmMgmt.c
浏览文件 @
e7ee48fd
...
...
@@ -103,6 +103,8 @@ int32_t dmInitDnode(SDnode *pDnode) {
goto
_OVER
;
}
tAssert
(
0
,
""
);
pDnode
->
wrappers
[
DNODE
].
func
=
dmGetMgmtFunc
();
pDnode
->
wrappers
[
MNODE
].
func
=
mmGetMgmtFunc
();
pDnode
->
wrappers
[
VNODE
].
func
=
vmGetMgmtFunc
();
...
...
source/util/src/tlog.c
浏览文件 @
e7ee48fd
...
...
@@ -781,28 +781,33 @@ cmp_end:
}
bool
taosAssertLog
(
bool
condition
,
const
char
*
file
,
int32_t
line
,
const
char
*
format
,
...)
{
if
(
!
condition
)
return
false
;
if
(
condition
)
return
false
;
const
char
*
flags
=
"UTL FATAL "
;
ELogLevel
level
=
DEBUG_FATAL
;
int32_t
dflag
=
255
;
// tsLogEmbedded ? 255 : uDebugFlag
char
buffer
[
LOG_MAX_LINE_BUFFER_SIZE
];
int32_t
len
=
taosBuildLogHead
(
buffer
,
"UTL FATAL"
);
int32_t
len
=
taosBuildLogHead
(
buffer
,
flags
);
va_list
argpointer
;
va_start
(
argpointer
,
format
);
int32_t
writeL
en
=
len
+
vsnprintf
(
buffer
+
len
,
LOG_MAX_LINE_BUFFER_SIZE
-
len
,
format
,
argpointer
);
l
en
=
len
+
vsnprintf
(
buffer
+
len
,
LOG_MAX_LINE_BUFFER_SIZE
-
len
,
format
,
argpointer
);
va_end
(
argpointer
);
buffer
[
len
++
]
=
'\n'
;
buffer
[
len
]
=
0
;
taosPrintLogImp
(
1
,
255
,
buffer
,
len
);
char
fullBuf
[
LOG_MAX_LINE_BUFFER_SIZE
];
int32_t
fullLen
=
snprintf
(
fullBuf
,
sizeof
(
fullBuf
),
"ASSERT at file:%s:%d, %s"
,
file
,
line
,
buffer
);
taosPrintLogImp
(
1
,
255
,
fullBuf
,
fullLen
);
taosPrintLog
(
flags
,
level
,
dflag
,
"ASSERT at file %s:%d exit:%d"
,
file
,
line
,
tsAssert
);
taosPrintTrace
(
flags
,
level
,
dflag
);
if
(
tsAssert
)
{
taosCloseLog
();
taosMsleep
(
300
);
#if NDEBUG
#if
def
NDEBUG
abort
();
#else
ASSERT
(
1
);
ASSERT
(
0
);
#endif
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录