Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ if(ENABLE_SANITIZERS)
endif()

# --- Definitions ---
target_compile_definitions(c_traceback PRIVATE VERSION_INFO="${PROJECT_VERSION}")
target_compile_definitions(c_traceback PRIVATE CTB_VERSION="${PROJECT_VERSION}")

# --- Installation ---
if(PROJECT_IS_TOP_LEVEL)
Expand Down
3 changes: 3 additions & 0 deletions examples/example.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ static void division_vec(double *vec, double denominator);

int main(void)
{
ctb_clear_context();
ctb_install_signal_handler();

double *vec = malloc(N * sizeof(double));
if (!vec)
{
Expand Down
3 changes: 3 additions & 0 deletions examples/example_logging.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ void log_message_level2(int i);

int main(void)
{
ctb_clear_context();
ctb_install_signal_handler();

log_error(1);
log_warning(3);
log_message(5);
Expand Down
3 changes: 3 additions & 0 deletions examples/example_multi_error.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ void do_something_risky()

int main(void)
{
ctb_clear_context();
ctb_install_signal_handler();

TRACE(open_file(FILE_PATH1));
TRACE(open_file(FILE_PATH2));

Expand Down
3 changes: 3 additions & 0 deletions examples/example_open_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ void open_file(const char *file_name)

int main(void)
{
ctb_clear_context();
ctb_install_signal_handler();

TRY_GOTO(open_file(FILE_PATH), error);
/* Do something */

Expand Down
3 changes: 3 additions & 0 deletions examples/example_print_compilation_info.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

int main(void)
{
ctb_clear_context();
ctb_install_signal_handler();

ctb_print_compilation_info();

return 0;
Expand Down
3 changes: 3 additions & 0 deletions examples/example_recursion.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ void recursion(int count)

int main(void)
{
ctb_clear_context();
ctb_install_signal_handler();

TRY_GOTO(recursion(0), error);
printf("This shouldn't be printed if there is error");

Expand Down
1 change: 1 addition & 0 deletions examples/example_seg_fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ void some_function(void)

int main(void)
{
ctb_clear_context();
ctb_install_signal_handler();
THROW(CTB_BUFFER_ERROR, "Hello! This is a test error before segfault.");

Expand Down
1 change: 1 addition & 0 deletions examples/example_tut04.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ void divide_vec(double *arr, const size_t n, const double denominator);

int main(void)
{
ctb_clear_context();
ctb_install_signal_handler();

const size_t n = 1000; // Vector size
Expand Down
5 changes: 5 additions & 0 deletions include/c_traceback/error.h
Original file line number Diff line number Diff line change
Expand Up @@ -89,4 +89,9 @@ bool ctb_check_error(void);
*/
void ctb_clear_error(void);

/**
* \brief Clear the C Traceback context (including errors and call stack).
*/
void ctb_clear_context(void);

#endif // C_TRACEBACK_ERROR_H
7 changes: 7 additions & 0 deletions src/error.c
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,10 @@ void ctb_clear_error(void)
{
get_context()->num_errors = 0;
}

void ctb_clear_context(void)
{
CTB_Context *context = get_context();
context->num_errors = 0;
context->call_depth = 0;
}