add functions insturmentation example

This commit is contained in:
Amar Mahmutbegovic
2025-04-02 12:44:02 +02:00
parent 4231df1fa1
commit 0e79f982a2
2 changed files with 36 additions and 0 deletions

View File

@@ -3,8 +3,12 @@
This folder contains examples in C++ from second chapter. This folder contains examples in C++ from second chapter.
The folder contains following examples: The folder contains following examples:
- instrument_functions.cpp
- vector_dyn_mem.cpp - vector_dyn_mem.cpp
- vector_dyn_mem_reserve.cpp - vector_dyn_mem_reserve.cpp
- vector_pmr.cpp - vector_pmr.cpp
- terminate_handler.cpp - terminate_handler.cpp
- new_deleted.cpp - new_deleted.cpp
## Functions instrumentation in GCC
Compile instrument_functions.cpp example using compiler flag -finstrument-functions

View File

@@ -0,0 +1,32 @@
#include <cstdio>
// Stub DWT_CYCCNT register
#define DWT_CYCCNT 100
extern "C"
{
__attribute__((no_instrument_function)) void __cyg_profile_func_enter(void *this_fn, void *call_site)
{
printf("entry, %p, %d\n", this_fn, DWT_CYCCNT);
}
__attribute__((no_instrument_function)) void __cyg_profile_func_exit(void *this_fn, void *call_site)
{
printf("entry, %p, %d\n", this_fn, DWT_CYCCNT);
}
}
void fun()
{
printf("Hi from fun!\n");
}
int main()
{
fun();
printf("Hi from main!\n");
return 0;
}