mfentry example

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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;
}




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux