fix incorrect formats and output memory usage on call stack warning
This commit is contained in:
@@ -111,11 +111,11 @@ void output_err(ArErr err) {
|
||||
dyefg(stderr, DYE_GRAY);
|
||||
fprintf(stderr, ":");
|
||||
dyefg(stderr, DYE_YELLOW);
|
||||
fprintf(stderr, "%zu", err.line);
|
||||
fprintf(stderr, "%lld", err.line);
|
||||
dyefg(stderr, DYE_GRAY);
|
||||
fprintf(stderr, ":");
|
||||
dyefg(stderr, DYE_YELLOW);
|
||||
fprintf(stderr, "%zu", err.column);
|
||||
fprintf(stderr, "%lld", err.column);
|
||||
dye_style(stderr, DYE_STYLE_RESET);
|
||||
dyefg(stderr, DYE_RESET);
|
||||
fprintf(stderr, "\n");
|
||||
@@ -123,7 +123,7 @@ void output_err(ArErr err) {
|
||||
if (file) {
|
||||
dye_style(stderr, DYE_STYLE_RESET);
|
||||
dyefg(stderr, DYE_RESET);
|
||||
int line_number_width = snprintf(NULL, 0, "%zu", err.line);
|
||||
int line_number_width = snprintf(NULL, 0, "%lld", err.line);
|
||||
char *buffer = NULL;
|
||||
size_t size = 0;
|
||||
int current_line = 1;
|
||||
@@ -154,7 +154,7 @@ void output_err(ArErr err) {
|
||||
err.column--;
|
||||
skipped_chars++;
|
||||
}
|
||||
fprintf(stderr, " %zu | ", err.line);
|
||||
fprintf(stderr, " %lld | ", err.line);
|
||||
if (err.length) {
|
||||
fprintf(stderr, "%.*s", (int)err.column - 1, line_starts);
|
||||
dyefg(stderr, DYE_RED);
|
||||
|
||||
@@ -99,10 +99,17 @@ void run_call(Translated *translated, RuntimeState *state) {
|
||||
if (floor(logval) == logval) {
|
||||
SourceLocation *source_location =
|
||||
darray_get(&translated->source_locations, source_location_index);
|
||||
double memoryUsage = get_memory_usage_mb();
|
||||
fprintf(stderr,
|
||||
"Warning: %s:%zu:%zu the call stack depth has exceeded %zu\n",
|
||||
"Warning: %s:%llu:%llu the call stack depth has exceeded %llu",
|
||||
state->path, source_location->line, source_location->column,
|
||||
(*state->currentStackFramePointer)->depth);
|
||||
if (memoryUsage) {
|
||||
fprintf(stderr, ", memory usage at %f MB\n", memoryUsage);
|
||||
|
||||
} else {
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
}
|
||||
};
|
||||
*state->currentStackFramePointer = checked_malloc(sizeof(StackFrame));
|
||||
|
||||
Reference in New Issue
Block a user