arguments.
#include <stdio.h>
#include <pthread.h>
void * threadproc(void * junk)
{
int i;
printf("In threadproc pid:%d \n", getpid());
printf("\n getting up from sleep \n");
execv("myprog",0);=20
printf("exec failed \n");
}
int main(int argc, char * argv)
{
int i;
void * ret;
pthread_t newthread;
printf("entering main program. pid: %d \n", getpid());
if(argc >1)
{
pthread_create(&newthread, NULL, threadproc, NULL);
printf("back to main. pid:%d \n",getpid());
}
printf("end of main: %d \n", getpid());
}
OUTOUT WHILE USING GDB after enabling printing of verbose/debug statements
in gdb/lin-lwp.c
gdbdir/gdb myprog
GNU gdb 20030731
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
This GDB was configured as "s390-ibm-linux"...
(gdb) run somearg
Starting program: /home/fultonm/bug3380/test3380nosleep somearg
CW: waitpid 2122 received Trace/breakpoint trap (stopped)
CW: waitpid 2122 received Trace/breakpoint trap (stopped)
CW: waitpid 2122 received Trace/breakpoint trap (stopped)
[New Thread 1024 (LWP 2122)]
LLR: PTRACE_SINGLESTEP process 2122, 0 (resume event thread)
LLW: waitpid 2122 received Trace/breakpoint trap (stopped)
LLW: Candidate event Trace/breakpoint trap (stopped) in LWP 2122.
SEL: Select single-step LWP 2122
LLW: trap_ptid is process 2122.
LLR: PTRACE_CONT process 2122, 0 (resume event thread)
LLW: waitpid 2122 received Trace/breakpoint trap (stopped)
LLW: Candidate event Trace/breakpoint trap (stopped) in LWP 2122.
LLW: trap_ptid is process 2122.
LLR: PTRACE_SINGLESTEP process 2122, 0 (resume event thread)
LLW: waitpid 2122 received Trace/breakpoint trap (stopped)
LLW: Candidate event Trace/breakpoint trap (stopped) in LWP 2122.
SEL: Select single-step LWP 2122
LLW: trap_ptid is process 2122.
LLR: PTRACE_CONT process 2122, 0 (resume event thread)
LLW: waitpid 2122 received Trace/breakpoint trap (stopped)
LLW: Candidate event Trace/breakpoint trap (stopped) in LWP 2122.
LLW: trap_ptid is process 2122.
LLR: PTRACE_SINGLESTEP process 2122, 0 (resume event thread)
LLW: waitpid 2122 received Trace/breakpoint trap (stopped)
LLW: Candidate event Trace/breakpoint trap (stopped) in LWP 2122.
SEL: Select single-step LWP 2122
LLW: trap_ptid is process 2122.
LLR: PTRACE_CONT process 2122, 0 (resume event thread)
LLW: waitpid 2122 received Trace/breakpoint trap (stopped)
LLW: Candidate event Trace/breakpoint trap (stopped) in LWP 2122.
LLW: trap_ptid is process 2122.
[New Thread 2049 (LWP 2123)]
LLAL: PTRACE_ATTACH LWP 2123, 0, 0 (OK)
LLAL: waitpid LWP 2123 received Stopped (signal) (stopped)
LLR: PTRACE_SINGLESTEP process 2122, 0 (resume event thread)
LLW: waitpid 2122 received Trace/breakpoint trap (stopped)
LLTA: PTRACE_PEEKUSER LWP 2122, 0, 0 (OK)
LLW: Candidate event Trace/breakpoint trap (stopped) in LWP 2122.
SEL: Select single-step LWP 2122
LLW: trap_ptid is LWP 2122.
RC: PTRACE_CONT LWP 2123, 0, 0 (resume sibling)
LLR: PTRACE_CONT process 2122, 0 (resume event thread)
LLW: waitpid 2123 received Real-time signal 0 (stopped)
LLTA: PTRACE_PEEKUSER LWP 2123, 0, 0 (OK)
LLW: PTRACE_CONT LWP 2123, Unknown signal 77 (preempt 'handle')
LLW: waitpid 2123 received Trace/breakpoint trap (stopped)
LLTA: PTRACE_PEEKUSER LWP 2123, 0, 0 (OK)
LLW: Candidate event Trace/breakpoint trap (stopped) in LWP 2123.
SC: kill LWP 2122 **<SIGSTOP>**
SC: lwp kill 0 ERRNO-OK
SWC: waitpid LWP 2122 received Stopped (signal) (stopped)
SWC: CALLING LLTA
LLTA: PTRACE_PEEKUSER LWP 2122, 0, 0 (OK)
LLW: trap_ptid is LWP 2123.
[New Thread 1026 (LWP 2124)]
LLAL: PTRACE_ATTACH LWP 2124, 0, 0 (OK)
LLAL: waitpid LWP 2124 received Stopped (signal) (stopped)
LLR: PTRACE_SINGLESTEP process 2123, 0 (resume event thread)
LLW: waitpid 2123 received Trace/breakpoint trap (stopped)
LLTA: PTRACE_PEEKUSER LWP 2123, 0, 0 (OK)
LLW: Candidate event Trace/breakpoint trap (stopped) in LWP 2123.
SEL: Select single-step LWP 2123
LLW: trap_ptid is LWP 2123.
RC: PTRACE_CONT LWP 2124, 0, 0 (resume sibling)
RC: PTRACE_CONT LWP 2122, 0, 0 (resume sibling)
LLR: PTRACE_CONT process 2123, 0 (resume event thread)
LLW: waitpid 2124 received Real-time signal 0 (stopped)
LLTA: PTRACE_PEEKUSER LWP 2124, 0, 0 (OK)
LLW: PTRACE_CONT LWP 2124, Unknown signal 77 (preempt 'handle')
In threadproc pid:2124
LLW: waitpid 2122 received Real-time signal 0 (stopped)
getting up from sleep
LLTA: PTRACE_PEEKUSER LWP 2122, 0, 0 (OK)
back to main. pid:2122
LLW: PTRACE_CONT LWP 2122, Unknown signal 77 (preempt 'handle')
LLW: waitpid 2122 received Real-time signal 1 (stopped)
LLTA: PTRACE_PEEKUSER LWP 2122, 0, 0 (OK)
LLW: PTRACE_CONT LWP 2122, Real-time signal 13 (preempt 'handle')
LLW: waitpid 2124 received Real-time signal 0 (stopped)
LLTA: PTRACE_PEEKUSER LWP 2124, 0, 0 (OK)
LLW: PTRACE_CONT LWP 2124, Unknown signal 77 (preempt 'handle')
LLW: waitpid 2123 received 0 (exited)
LLW: LWP 2123 exited.
LLW: waitpid 2122 received 0 (exited)
SC: kill LWP 2124 **<SIGSTOP>**
SC: lwp kill 0 ERRNO-OK
SWC: waitpid LWP 2124 received Trace/breakpoint trap (stopped)
SWC: CALLING LLTA
LLTA: PTRACE_PEEKUSER LWP 2124, 0, 0 (OK)
PTRACE_CONT LWP 2124, 0, 0 (OK)
SWC: Candidate SIGTRAP event in LWP 2124
SWC: waitpid LWP 2124 received Stopped (signal) (stopped)
SWC: CALLING LLTA
LLTA: PTRACE_PEEKUSER LWP 2124, 0, 0 (OK)
LLW: LWP 2122 exited.
lin-lwp.c:1317: internal-error: lin_lwp_wait: Assertion `iterate_over_lwps
(run
ing_callback, NULL)' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) y
Create a core file of GDB? (y or n) y
Abort
mymachine: /home/srik>