T.R | Title | User | Personal Name | Date | Lines |
---|
918.1 | | TLE::SHAMIM | | Wed Apr 09 1997 10:06 | 10 |
|
First questions is which version of the OS you are running on ??
Secondly, notice that you are ignoring SIGTRAP - this may have something
to do with the problem you are seeing.
We will investigate further and get back to you.
thanks
shamim
|
918.2 | SIGTRAP is not the answer | RHETT::HALETKY | | Wed Apr 09 1997 13:41 | 12 |
| Version of OS? v4.0b
Why ignore SIGTRAP? Because if we don't ever time the when line is hit
the debugger will stop. If you are using when to trace this is not a
desired effect. ignoring SIGTRAP is a must.
This is a pretty serious problem. Is there a later version of
decladebug available.
Best regards,
Ed Haletky
DIgital CSC
|
918.3 | this is how when works | TLE::SHAMIM | | Wed Apr 09 1997 15:21 | 30 |
| >> Why ignore SIGTRAP? Because if we don't ever time the when line is hit
>> the debugger will stop. If you are using when to trace this is not a
>> desired effect. ignoring SIGTRAP is a must.
I think you have misunderstood the when functionality.
The when command works as follows: (it is easier to explain by examples)
(ladebug) when at 33 {print i;}
is telling the debugger that every time the execution reaches line 33, print
the value of variable i. The debugger will not stop as far as the user is
concerned - ie. you will not get the prompt back. Underneath the debuggee
process has to stop when the execution reaches line 33 for the debugger
to get the value of i or perform any other action that is specified in {}.
And whether you say ignore SIGTRAP or not, the debuggee process will stop.
If instead I had said
(ladebug) when at 33 {print i; stop;}
Then in addition to printing the value of variable i when the execution
reaches line 33, the debugger will also stop and you will get the prompt back.
So to answer your question, it is not at all necessary to ignore SIGTRAP to
use the when command.
thanks
shamim
|
918.4 | more info | TLE::SHAMIM | | Wed Apr 09 1997 15:34 | 21 |
|
Using your sample program, I can't reproduce the problem on V4.0b.
Also, since you are getting
> Unable to create a thread list using decthreads.
> Unable to switch to decthreads mode.
my suspicion is something is not setup right with the threads library.
Are you running any patches ??
Can you give us information (ls -l) on:
/usr/shlib/libpthread.so
/usr/shlib/libpthreaddebug.so
and output of the ladebug command 'listobj'.
thanks
shamim
|
918.5 | | DCETHD::BUTENHOF | Dave Butenhof, DECthreads | Thu Apr 10 1997 08:03 | 17 |
| > (ladebug) r
> Unable to create a thread list using decthreads.
> Unable to switch to decthreads mode.
I've seen this occasionally. I suspect it has something to do with
initialization state races, although I've never had a chance to isolate it.
(It also happens more with older versions of ladebug, though I have seen it
with 4.0-30.) In any case, for PTmin I've substantially improved the way that
the thread debug library (used by ladebug) deals with uninitialized and
partially initialized libpthread target state -- and I have never seen this
startup problem with the new code.
In the cases where I've seen this problem on older systems, I've always been
able to switch into decthreads mode AFTER initialization. Try setting a
breakpoint in main, and then set $threadlevel="decthreads" when you hit it.
/dave
|
918.6 | | TLE::BRETT | | Wed May 21 1997 16:56 | 2 |
| ladebugbugs 2203
ipmt HPAQ416AG CLD
|