Runaway recursion perhaps?
Code:
#0 0x000000000040077a in lcp (str=<error reading variable: Cannot access memory at address 0x7fffff7fef38>,
l=<error reading variable: Cannot access memory at address 0x7fffff7fef34>, r=<error reading variable: Cannot access memory at address 0x7fffff7fef30>) at bar.c:23
#1 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#2 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#3 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#4 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#5 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#6 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#7 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#8 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#9 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#10 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#11 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#12 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#13 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#14 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#15 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#16 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#17 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#18 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#19 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
#20 0x00000000004007e8 in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:31
/// at least 3000
It's the same parameter when you first call it from main.
Code:
(gdb) bt
#0 lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:24
#1 0x00000000004007ef in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:32
#2 0x00000000004008d6 in main (argc=1, argv=0x7fffffffdf48) at bar.c:48
(gdb) frame 1
#1 0x00000000004007ef in lcp (str=0x7fffffffddd0, l=0, r=3) at bar.c:32
32 strcpy(str1, lcp(str, l, r));
(gdb)
You just call the function recursively, with the same input parameters!
> char *result = malloc(sizeof(char) * 100);
If result[0] isn't \0, then your strncat is off in the weeds trashing memory.