1

I am getting some issues while following child process in dbx in a huge legacy C code. I am presenting below the code part under investigation:

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main()
{
    if(fork()) exit(0);
    return 0;
}

when I run through dbx in Solaris 10, I am getting the following output:

Running: a.out
(process id 28193)
stopped in main at line 5 in file "a.c"
    5           if(fork()) exit(0);
(dbx) next
dbx: detected a fork(). Do you want to follow parent, child or stop to investigate?
> child
Following child ...
detaching from process 28193
Attached to process 28197
stopped in __fork1 at 0xfeefc6b7
0xfeefc6b7: __fork1+0x0007:     jb       __cerror       [ 0xfee70a40, .-0x8bc77 ]
Current function is main
    5           if(fork()) exit(0);
dbx: warning: stepping up to a function with srcline info

Why I am getting this warning dbx: warning: stepping up to a function with srcline info?

Can anyone please help me over this? I am stuck at this point.

Gajendra Bagali
  • 177
  • 1
  • 2
  • 12

1 Answers1

1

The function which dbx is trying to trace is __fork1(), which is provided to you by libc. Oracle doesn't ship libc built with -g, which is what you need in order to have source-line information in the debugger.

James McPherson
  • 2,476
  • 1
  • 12
  • 16