Hello,
I'm trying to do a live update of a function without killing or
stopping the program. This is a single threaded application which runs
something similar to the below code. Maximum time is spent in the
while(1) loop.
What i want to do is compile with gcc-4.8 with -pg and -mfentry and
then call function g() and then do the int y=x*3 and everything else.
I have thought of an idea about registering a sigHandler and then
setjmp/longjmp to g.. Please note i'm trying to fix some bugs here
without stopping the process.
I want to do something akin to Kgraft/Kpatch or Erlang's dynamic
updation system.
Can you please help me by throwing some light on this .
cat testxyz.c
#include<stdio.h>
void g(int x)
{
new code that fixes some bugs
}
void f(int x)
{
int y=x*3;
printf("y on entry is 9\n");
int i=0;
while(1)
{
sleep(5);
i++;
printf("i now is %d\n",i);
}
return ;
}
int main()
{
f(3);
return 0;
}