*fixed a stack memory issue with stack tracing.
This commit is contained in:
parent
0effa21e06
commit
850079a22f
@ -124,6 +124,7 @@ extern "C" {
|
|||||||
/* Buffer length of some string operations */
|
/* Buffer length of some string operations */
|
||||||
#define _INPUT_MAX_LENGTH 256
|
#define _INPUT_MAX_LENGTH 256
|
||||||
#define _TEMP_FORMAT_MAX_LENGTH 32
|
#define _TEMP_FORMAT_MAX_LENGTH 32
|
||||||
|
#define _LAMBDA_NAME_MAX_LENGTH 32
|
||||||
|
|
||||||
/* Helper */
|
/* Helper */
|
||||||
#ifndef sgn
|
#ifndef sgn
|
||||||
@ -4036,6 +4037,9 @@ static int _eval_routine(mb_interpreter_t* s, _ls_node_t** l, mb_value_t* va, un
|
|||||||
#ifdef MB_ENABLE_SOURCE_TRACE
|
#ifdef MB_ENABLE_SOURCE_TRACE
|
||||||
char* src = 0;
|
char* src = 0;
|
||||||
#endif /* MB_ENABLE_SOURCE_TRACE */
|
#endif /* MB_ENABLE_SOURCE_TRACE */
|
||||||
|
#ifdef MB_ENABLE_STACK_TRACE
|
||||||
|
char ln[_LAMBDA_NAME_MAX_LENGTH];
|
||||||
|
#endif /* MB_ENABLE_STACK_TRACE */
|
||||||
|
|
||||||
#ifdef MB_ENABLE_STACK_TRACE
|
#ifdef MB_ENABLE_STACK_TRACE
|
||||||
_ls_pushback(s->stack_frames, r->name);
|
_ls_pushback(s->stack_frames, r->name);
|
||||||
@ -4053,7 +4057,6 @@ static int _eval_routine(mb_interpreter_t* s, _ls_node_t** l, mb_value_t* va, un
|
|||||||
# ifdef MB_ENABLE_STACK_TRACE
|
# ifdef MB_ENABLE_STACK_TRACE
|
||||||
_ls_node_t* top = _ls_back(s->stack_frames);
|
_ls_node_t* top = _ls_back(s->stack_frames);
|
||||||
if(top) {
|
if(top) {
|
||||||
char ln[32];
|
|
||||||
sprintf(ln, "LAMBDA_0x%p", &r->func.lambda.ref);
|
sprintf(ln, "LAMBDA_0x%p", &r->func.lambda.ref);
|
||||||
top->data = ln;
|
top->data = ln;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user