[M3devel] System and User space Threads on LINUXLIBC6
Tony Hosking
hosking at cs.purdue.edu
Fri Sep 28 17:35:25 CEST 2007
On Sep 28, 2007, at 11:02 AM, Daniel Alejandro Benavides D. wrote:
> Hi:
> I would like to know if it is necessary to turn down
> the garbage collection to debug a M3 program.
> I know running a program inside gdb in general could
> cause some runtime diferences withj normal execution,
> like the cout<< in C++, which is reliable under
> debugging conditions, but not in normal execution
> conditions in a program which calls it constantly
> (that happened me on 2005), so one can note that the
> behaviour would be better on debug conditions, thats
> why I think this is not maybe the problem on NThreads
> program (is easy to say that if we think that the
> runtime errors showed inside m3gdb are not present
> when the program executes normally), tough I debugged
> one more time to show other backtraces:
Debugging with GC enabled should be fine, except that you will not
necessarily see the same non-deterministic behavior as when it runs
outside the debugger.
Regarding the assert that is failing, that indicates that sigwait is
returning an error, which seems odd. I will try this program on my
own Linux system.
>
> (m3gdb) run
> The program being debugged has been started already.
> Start it from the beginning? (y or n) y
> Starting program:
> /home/danielb/code/m3/parallel/LINUXLIBC6/NThreads
> Error in re-setting breakpoint 3:
> No source file named ThreadPThread.m3.
> Error in re-setting breakpoint 3:
> No source file named ThreadPThread.m3.
> Error in re-setting breakpoint 3:
> No source file named ThreadPThread.m3.
> Breakpoint 3 at 0xb7654dba: file ThreadPThread.m3,
> line 1180.
> [Thread debugging using libthread_db enabled]
> [New Thread -1220008256 (LWP 8474)]
> [Switching to Thread -1220008256 (LWP 8474)]
>
> Breakpoint 1, NThreads_M3_te29971a7_INIT
> (L_2=0xb7447010) at NThreads.m3:14
> 14 Closure = Thread.Closure OBJECT
> (m3gdb) cont
> Continuing.
> [New Thread -1220281424 (LWP 8495)]
>
> Breakpoint 1, NThreads_M3_te29971a7_INIT
> (L_2=0xb7447058) at NThreads.m3:14
> 14 Closure = Thread.Closure OBJECT
> (m3gdb) cont
> Continuing.
> [New Thread -1228674128 (LWP 8496)]
> 1
> Breakpoint 1, NThreads_M3_te29971a7_INIT
> (L_2=0xb74470a0) at NThreads.m3:14
> 14 Closure = Thread.Closure OBJECT
> (m3gdb) cont
> Continuing.
> 1[New Thread -1237066832 (LWP 8497)]
> 2 1
> Breakpoint 1, NThreads_M3_te29971a7_INIT
> (L_2=0xb74470e8) at NThreads.m3:14
> 14 Closure = Thread.Closure OBJECT
> (m3gdb) cont
> Continuing.
> 2 1[New Thread -1245459536 (LWP 8498)]
> 3 2 1
> Breakpoint 1, NThreads_M3_te29971a7_INIT
> (L_2=0xb7447130) at NThreads.m3:14
> 14 Closure = Thread.Closure OBJECT
> (m3gdb) cont
> Continuing.
> 3 2 1[New Thread -1253852240 (LWP 8499)]
> 3 2 1
> Breakpoint 1, NThreads_M3_te29971a7_INIT
> (L_2=0xb7447178) at NThreads.m3:14
> 14 Closure = Thread.Closure OBJECT
> (m3gdb) cont
> Continuing.
>
> Program received signal SIG64, Real-time event 64.
> NThreads_M3_te29971a7_INIT (L_2=0xb7447178) at
> NThreads.m3:14
> 14 Closure = Thread.Closure OBJECT
> (m3gdb) cont
> Continuing.
>
> Program received signal SIG64, Real-time event 64.
> [Switching to Thread -1253852240 (LWP 8499)]
> 0xffffe410 in __kernel_vsyscall ()
> (m3gdb) cont
> Continuing.
> [Switching to Thread -1220008256 (LWP 8474)]
>
> Breakpoint 1, NThreads_M3_te29971a7_INIT
> (L_2=0xb7447178) at NThreads.m3:14
> 14 Closure = Thread.Closure OBJECT
> (m3gdb) cont
> Continuing.
>
> Program received signal SIG64, Real-time event 64.
> [Switching to Thread -1237066832 (LWP 8497)]
> 0xffffe410 in __kernel_vsyscall ()
> (m3gdb) cont
> Continuing.
>
> Program received signal SIG64, Real-time event 64.
> [Switching to Thread -1228674128 (LWP 8496)]
> 0xffffe410 in __kernel_vsyscall ()
> (m3gdb) cont
> Continuing.
>
> Program received signal SIG64, Real-time event 64.
> [Switching to Thread -1220281424 (LWP 8495)]
> 0xffffe410 in __kernel_vsyscall ()
> (m3gdb) cont
> Continuing.
> [Switching to Thread -1253852240 (LWP 8499)]
>
> Breakpoint 3, SignalHandler (sig=64, sip=16_b543af8c,
> uap=16_b543b00c) at ThreadPThread.m3:1180
> 1180 ThreadPThread.m3: No such file or directory.
> in ThreadPThread.m3
> (m3gdb) where
> #0 SignalHandler (sig=64, sip=16_b543af8c,
> uap=16_b543b00c) at ThreadPThread.m3:1180
> #1 <signal handler called>
> #2 0xffffe410 in __kernel_vsyscall ()
> #3 0xb75df3c1 in __lll_mutex_unlock_wake () from
> /lib/tls/i686/cmov/libpthread.so.0
> #4 0xb75dc2df in _L_mutex_unlock_128 () from
> /lib/tls/i686/cmov/libpthread.so.0
> #5 0xb543b358 in ?? ()
> #6 0xb764ecef in Release (m=16_b767adf4) at
> ThreadPThread.m3:186
> #7 0xb764ecef in Release (m=16_b7440004) at
> ThreadPThread.m3:186
> #8 0xb7651aa9 in RunThread (me=16_08054700) at
> ThreadPThread.m3:536
> #9 0xb76517e6 in ThreadBase (param=16_08054700) at
> ThreadPThread.m3:521
> #10 0xb75da341 in start_thread () from
> /lib/tls/i686/cmov/libpthread.so.0
> #11 0xb754c4ee in clone () from
> /lib/tls/i686/cmov/libc.so.6
> (m3gdb) step
> 1181 in ThreadPThread.m3
> (m3gdb) step
> [Switching to Thread -1237066832 (LWP 8497)]
>
> Breakpoint 3, SignalHandler (sig=64, sip=16_b643cf9c,
> uap=16_b643d01c) at ThreadPThread.m3:1180
> 1180 in ThreadPThread.m3
> (m3gdb) step
> [Switching to Thread -1228674128 (LWP 8496)]
>
> Breakpoint 3, SignalHandler (sig=64, sip=16_b6c3df9c,
> uap=16_b6c3e01c) at ThreadPThread.m3:1180
> 1180 in ThreadPThread.m3
> (m3gdb) step
> [Switching to Thread -1220281424 (LWP 8495)]
>
> Breakpoint 3, SignalHandler (sig=64, sip=16_b743ef9c,
> uap=16_b743f01c) at ThreadPThread.m3:1180
> 1180 in ThreadPThread.m3
> (m3gdb) step
>
>
> ***
> *** runtime error:
> *** <*ASSERT*> failed.
> *** file "../src/thread/PTHREAD/ThreadPThread.m3",
> line 1184
> ***
>
>
>
> ***
> *** runtime error:
> *** <*ASSERT*> failed.
> *** file "../src/thread/PTHREAD/ThreadPThread.m3",
> line 1184
> ***
>
>
>
> ***
> *** runtime error:
> *** <*ASSERT*> failed.
> *** file "../src/thread/PTHREAD/ThreadPThread.m3",
> line 1184
> ***
>
>
> Program received signal SIG64, Real-time event 64.
> [Switching to Thread -1220008256 (LWP 8474)]
> 0xffffe410 in __kernel_vsyscall ()
> (m3gdb) where
> #0 0xffffe410 in __kernel_vsyscall ()
> #1 0xb75dcc76 in pthread_cond_wait@@GLIBC_2.3.2 ()
> from /lib/tls/i686/cmov/libpthread.so.0
> #2 0xb7655ae0 in LockHeap () at ThreadPThread.m3:1370
> #3 0xb76213ca in GetUntracedRef (def=16_b767af38) at
> RTAllocator.m3:240
> #4 0xb7620b4a in AllocateUntracedRef
> (defn=16_b767af38) at RTAllocator.m3:146
> #5 0xb7652003 in Fork (closure=16_b7447178) at
> ThreadPThread.m3:575
> #6 0x0804b8b6 in Fork () at NThreads.m3:33
> #7 0x0804b928 in NThreads (mode=1) at NThreads.m3:39
> #8 0xb763a87a in RunMainBody (m=16_0804dc60) at
> RTLinker.m3:399
> #9 0xb7639174 in AddUnitI (m=16_0804dc60) at
> RTLinker.m3:113
> #10 0xb763920b in AddUnit (b={"NThreads_M3", Declared
> at: NThreads.m3:38}) at RTLinker.m3:122
> #11 0x08048ea8 in main (argc=1, argv=0xbfce0c04,
> envp=0xbfce0c0c) at _m3main.mc:4
> (m3gdb) step
> Single stepping until exit from function
> __kernel_vsyscall,
> which has no line number information.
> SignalHandler (sig=64, sip=16_bfce042c,
> uap=16_bfce04ac) at ThreadPThread.m3:1157
> 1157 in ThreadPThread.m3
> (m3gdb) step
>
>
> ***
> *** runtime error:
> *** <*ASSERT*> failed.
> *** file "../src/thread/PTHREAD/ThreadPThread.m3",
> line 1184
> ***
>
> 1161 in ThreadPThread.m3
> (m3gdb) step
> m3_Cerrno_GetErrno () at ../src/C/Common/CerrnoC.c:10
> 10 ../src/C/Common/CerrnoC.c: No such file or
> directory.
> in ../src/C/Common/CerrnoC.c
> Current language: auto; currently c
> (m3gdb) step
> 11 in ../src/C/Common/CerrnoC.c
> (m3gdb) step
> SignalHandler (sig=64, sip=16_bfce042c,
> uap=16_bfce04ac) at ThreadPThread.m3:1163
> 1163 ThreadPThread.m3: No such file or directory.
> in ThreadPThread.m3
> Current language: auto; currently Modula-3
> (m3gdb) step
> GetActivation () at ThreadPThread.m3:368
> 368 in ThreadPThread.m3
> (m3gdb) step
> 369 in ThreadPThread.m3
> (m3gdb) step
> SignalHandler (sig=64, sip=16_bfce042c,
> uap=16_bfce04ac) at ThreadPThread.m3:1166
> 1166 in ThreadPThread.m3
> (m3gdb) step
> 1167 in ThreadPThread.m3
> (m3gdb) step
> 1168 in ThreadPThread.m3
> (m3gdb) step
> 1169 in ThreadPThread.m3
> (m3gdb) step
> 1172 in ThreadPThread.m3
> (m3gdb) step
> 1174 in ThreadPThread.m3
> (m3gdb) step
> 1175 in ThreadPThread.m3
> (m3gdb) step
> 1178 in ThreadPThread.m3
> (m3gdb) step
> 4 4 4 4 4 4
> Program received signal SIGABRT, Aborted.
> [Switching to Thread -1237066832 (LWP 8497)]
> 0xffffe410 in __kernel_vsyscall ()
> (m3gdb) step
> Single stepping until exit from function
> __kernel_vsyscall,
>
> Thanks
>
> --- "Daniel Alejandro Benavides D."
> <dabenavidesd at yahoo.es> wrote:
>
>> Hi:
>>
>> I debugged for a while the program with
>> handle all nostop
>> handle EXC_SOFTWARE stop
>> handle EXC_BREAKPOINT stop
>>
>> getting this:
>>
>> Breakpoint 4, SignalHandler (sig=64,
>> sip=16_b640ff9c,
>> uap=16_b641001c) at ThreadPThread.m3:1180
>> 1180 in ThreadPThread.m3
>> (m3gdb) step
>> [Switching to Thread -1254036560 (LWP 8072)]
>>
>> Breakpoint 3, SignalHandler (sig=64,
>> sip=16_b540df8c,
>> uap=16_b540e00c) at ThreadPThread.m3:1184
>> 1184 in ThreadPThread.m3
>> (m3gdb) step
>> [Switching to Thread -1237251152 (LWP 8067)]
>>
>> Breakpoint 3, SignalHandler (sig=64,
>> sip=16_b640ff9c,
>> uap=16_b641001c) at ThreadPThread.m3:1184
>> 1184 in ThreadPThread.m3
>> (m3gdb) where
>> #0 SignalHandler (sig=64, sip=16_b640ff9c,
>> uap=16_b641001c) at ThreadPThread.m3:1184
>> #1 <signal handler called>
>> #2 0xffffe410 in __kernel_vsyscall ()
>> #3 0xb7505b8c in sched_yield () from
>> /lib/tls/i686/cmov/libc.so.6
>> #4 0xb7625fce in Yield () at ThreadPThread.m3:712
>> #5 0x0804b844 in PrintId (cl=16_b741b0a0) at
>> NThreads.m3:25
>> #6 0xb7624b21 in RunThread (me=16_08054560) at
>> ThreadPThread.m3:540
>> #7 0xb76247e6 in ThreadBase (param=16_08054560) at
>> ThreadPThread.m3:521
>> #8 0xb75ad341 in start_thread () from
>> /lib/tls/i686/cmov/libpthread.so.0
>> #9 0xb751f4ee in clone () from
>> /lib/tls/i686/cmov/libc.so.6
>> (m3gdb) step
>>
>>
>> ***
>> *** runtime error:
>> *** <*ASSERT*> failed.
>> *** file
>> "../src/thread/PTHREAD/ThreadPThread.m3",
>> line 1184
>> ***
>>
>> [Switching to Thread -1228858448 (LWP 8066)]
>>
>> Breakpoint 4, SignalHandler (sig=64,
>> sip=16_b6c10f9c,
>> uap=16_b6c1101c) at ThreadPThread.m3:1180
>> 1180 in ThreadPThread.m3
>> (m3gdb) step
>>
>> Breakpoint 3, SignalHandler (sig=64,
>> sip=16_b6c10f9c,
>> uap=16_b6c1101c) at ThreadPThread.m3:1184
>> 1184 in ThreadPThread.m3
>> (m3gdb) step
>>
>>
>> ***
>> *** runtime error:
>> *** <*ASSERT*> failed.
>> *** file
>> "../src/thread/PTHREAD/ThreadPThread.m3",
>> line 1184
>> ***
>>
>>
>> Program received signal SIG64, Real-time event 64.
>> [Switching to Thread -1220465744 (LWP 8065)]
>>
>> Breakpoint 4, SignalHandler (sig=64,
>> sip=16_b7411f9c,
>> uap=16_b741201c) at ThreadPThread.m3:1180
>> 1180 in ThreadPThread.m3
>> (m3gdb) step
>> 4 4
>> Program received signal SIGABRT, Aborted.
>> 4Couldn't get registers: No such process.
>> (m3gdb)
>>
> -----------------------------------------------------
>> And then without modifying the signal set:
>>
>> (m3gdb) break NThreads.m3:10
>> Breakpoint 1 at 0x804b934: file NThreads.m3, line
>> 10.
>> (m3gdb) break ThreadPThread.m3:1180
>> No source file named ThreadPThread.m3.
>> Make breakpoint pending on future shared library
>> load?
>> (y or [n]) y
>> Breakpoint 2 (ThreadPThread.m3:1180) pending.
>> (m3gdb) run
>> Starting program:
>> /home/danielb/code/m3/parallel/LINUXLIBC6/NThreads
>> [Thread debugging using libthread_db enabled]
>> [New Thread -1220532544 (LWP 8125)]
>> Breakpoint 3 at 0xb75d4dba: file ThreadPThread.m3,
>> line 1180.
>> Pending breakpoint "ThreadPThread.m3:1180" resolved
>> [Switching to Thread -1220532544 (LWP 8125)]
>>
>> Breakpoint 1, NThreads_M3_te29971a7_INIT
>> (L_2=0xb73c7010) at NThreads.m3:14
>> warning: Source file is more recent than executable.
>> 14 Closure = Thread.Closure OBJECT
>> (m3gdb) cont
>> Continuing.
>> [New Thread -1220805712 (LWP 8131)]
>>
>> Breakpoint 1, NThreads_M3_te29971a7_INIT
>> (L_2=0xb73c7058) at NThreads.m3:14
>> 14 Closure = Thread.Closure OBJECT
>> (m3gdb) cont
>> Continuing.
>> [New Thread -1229198416 (LWP 8132)]
>> 1
>> Breakpoint 1, NThreads_M3_te29971a7_INIT
>> (L_2=0xb73c70a0) at NThreads.m3:14
>> 14 Closure = Thread.Closure OBJECT
>> (m3gdb) cont
>> Continuing.
>> 1[New Thread -1237591120 (LWP 8133)]
>> 2 1
>> Breakpoint 1, NThreads_M3_te29971a7_INIT
>> (L_2=0xb73c70e8) at NThreads.m3:14
>> 14 Closure = Thread.Closure OBJECT
>> (m3gdb) cont
>> Continuing.
>> 2 1[New Thread -1245983824 (LWP 8134)]
>> 3 2 1
>> Breakpoint 1, NThreads_M3_te29971a7_INIT
>> (L_2=0xb73c7130) at NThreads.m3:14
>> 14 Closure = Thread.Closure OBJECT
>> (m3gdb) cont
>> Continuing.
>> 3 2 1[New Thread -1254376528 (LWP 8135)]
>> 3 2 1
>> Breakpoint 1, NThreads_M3_te29971a7_INIT
>> (L_2=0xb73c7178) at NThreads.m3:14
>> 14 Closure = Thread.Closure OBJECT
>> (m3gdb) cont
>> Continuing.
>>
>> Program received signal SIG64, Real-time event 64.
>> NThreads_M3_te29971a7_INIT (L_2=0xb73c7178) at
>> NThreads.m3:14
>> 14 Closure = Thread.Closure OBJECT
>> (m3gdb) cont
>> Continuing.
>>
>> Breakpoint 1, NThreads_M3_te29971a7_INIT
>> (L_2=0xb73c7178) at NThreads.m3:14
>> 14 Closure = Thread.Closure OBJECT
>> (m3gdb) cont
>> Continuing.
>>
>> Program received signal SIG64, Real-time event 64.
>> [Switching to Thread -1254376528 (LWP 8135)]
>> 0xffffe410 in __kernel_vsyscall ()
>> (m3gdb) cont
>> Continuing.
>>
>> Program received signal SIG64, Real-time event 64.
>> [Switching to Thread -1237591120 (LWP 8133)]
>> 0xffffe410 in __kernel_vsyscall ()
>> (m3gdb) cont
>> Continuing.
>>
>> Program received signal SIG64, Real-time event 64.
>> [Switching to Thread -1229198416 (LWP 8132)]
>> 0xffffe410 in __kernel_vsyscall ()
>> (m3gdb) cont
>> Continuing.
>>
>> Program received signal SIG64, Real-time event 64.
>> [Switching to Thread -1220805712 (LWP 8131)]
>> 0xffffe410 in __kernel_vsyscall ()
>> (m3gdb) cont
>> Continuing.
>> [Switching to Thread -1254376528 (LWP 8135)]
>>
>> Breakpoint 3, SignalHandler (sig=64,
>> sip=16_b53baf8c,
>> uap=16_b53bb00c) at ThreadPThread.m3:1180
>> 1180 ThreadPThread.m3: No such file or directory.
>> in ThreadPThread.m3
>> (m3gdb) where
>> #0 SignalHandler (sig=64, sip=16_b53baf8c,
>>
> === message truncated ===
>
>
>
>
> ______________________________________________________________________
> ______________
> Sé un Mejor Amante del Cine
> ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!
> http://advision.webevents.yahoo.com/reto/entretenimiento.html
More information about the M3devel
mailing list