我在dbx中使用庞大的遗留C代码中的子进程时遇到了一些问题。我在调查的代码部分下面提出:
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main()
{
if(fork()) exit(0);
return 0;
}
当我在Solaris 10中运行dbx时,我得到以下输出:
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
为什么我收到此警告dbx: warning: stepping up to a function with srcline info
?
有人可以帮助我吗?我被困在这一点上。
答案 0 :(得分:1)
dbx尝试跟踪的函数是__fork1(),它是提供的 由libc给你。 Oracle没有发布用-g构建的libc,这就是你所做的 需要在调试器中获得源代码行信息。