亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
gdb調(diào)試的一個(gè)問題,請(qǐng)教大家
[打印本頁(yè)]
作者:
plscareme
時(shí)間:
2005-12-23 17:05
標(biāo)題:
gdb調(diào)試的一個(gè)問題,請(qǐng)教大家
1. 主要是父子進(jìn)程的調(diào)試問題,出現(xiàn)一個(gè)很奇怪的現(xiàn)象。在子進(jìn)程中設(shè)置斷點(diǎn),會(huì)將子進(jìn)程的弄
成defunction(僵死)的進(jìn)程。然而如果在父進(jìn)程的部分設(shè)置斷點(diǎn),就不會(huì)出現(xiàn)子進(jìn)程僵死的問題。
好像是子進(jìn)程一掛就掛死了。
int main(void)
{
pid_t pid;
/* fork the child process */
pid = fork();
if (pid < (pid_t)0)
{
printf("fork failed . \n");
exit(1);
}
if (pid == (pid_t)0)
/* 子進(jìn)程 */
{
(斷點(diǎn)在這) printf("process child before sleep. \n");
sleep(3000);
}
else {
printf("process parent before sleep. \n");
sleep(300);
}
在父進(jìn)程中設(shè)置斷點(diǎn),父子進(jìn)程都沒有問題。
int main(void)
{
pid_t pid;
/* fork the child process */
pid = fork();
if (pid < (pid_t)0)
{
printf("fork failed . \n");
exit(1);
}
if (pid == (pid_t)0)
/* 子進(jìn)程 */
{
printf("process child before sleep. \n");
sleep(3000);
}
else {
(斷點(diǎn)在這) printf("process parent before sleep. \n");
sleep(300);
}
這是不是意味著用GDB調(diào)試父子進(jìn)程,只能是在父子進(jìn)程都運(yùn)行ok的情況下,分別將gdb attach到進(jìn)程上。
但是如果只想起一個(gè)gdb, 或者是子進(jìn)程成功運(yùn)行起來,但是馬上出錯(cuò),根本來不及attach,這種方法就
有問題了。不知道是不是gdb調(diào)試這種多進(jìn)程的缺陷? 好像在網(wǎng)上看到過。
測(cè)試用的環(huán)境是這樣的:
SunOS 5.7 Generic_106541-23 sun4u sparc SUNW,Ultra-4
2. 父進(jìn)程被掛起,子進(jìn)程是不是也被掛起來了? 至少?gòu)膅db的結(jié)果來看,不是的。
作者:
soi
時(shí)間:
2005-12-23 18:29
在子進(jìn)程時(shí)停止n妙,然后attach
作者:
plscareme
時(shí)間:
2005-12-26 20:28
什么意思?????????
作者:
ping17909
時(shí)間:
2005-12-28 00:07
gdb調(diào)試子進(jìn)程方法:
1 在fork子進(jìn)程后,子進(jìn)程sleep幾秒鐘
2 使用ps 查看fork出來的子進(jìn)程的進(jìn)程號(hào)
3 打開gdb,使用attach 命令
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2