[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::digital_unix

Title:DIGITAL UNIX(FORMERLY KNOWN AS DEC OSF/1)
Notice:Welcome to the Digital UNIX Conference
Moderator:SMURF::DENHAM
Created:Thu Mar 16 1995
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:10068
Total number of notes:35879

8819.0. "Cannot debug multi-threaded programs" by TAEC::BRONOEL () Thu Feb 13 1997 07:05

Hi,

We encounter a new strange problem with our TeMIP executables
on both V3.2C and V3.2G platforms : we cannot debug anymore
our programs.

Symptoms are :

# dbx mcc_domain_fm                                   
dbx version 3.11.8
Type 'help' for help.

(dbx) r

Interrupt
signal Interrupt at >*[__accept, 0x3ff8051a688]         beq     r19,
0x3ff8051a6a0
(dbx) tlist
thread 0x0 signal Interrupt at >*[__accept, 0x3ff8051a688]      beq     r19,
0x3ff8051a6a0
(dbx) tstack

Thread 0x0:
>  0 __accept(0x3ff80560760, 0x11fffeb18, 0x3ff81299914, 0x3ffc072d3f0,
0x1400036ec) [0x3ff8051a688]
   1 mcc_accept(0x4, 0x11ffff498, 0x11ffff490, 0x100000000, 0x3ff81266210)
[0x3ff8129992c]
   2 im__rpc_server(0x120016fc0, 0x3ff00000018, 0x10, 0x0, 0x0) [0x3ff81266320]
   3 mcc_start_server(0x10, 0x0, 0x0, 0x1200396c0, 0x120016fe4) [0x3ff81299554]
   4 main(0x2, 0x0, 0x120016b38, 0x355a0a3, 0x100000000) [0x120016fe0]


Note that for example this executable has been compiled with -g
option, has not been stripped and is working correctly. In addition
is is really multi-threaded as shown by ps command.

However it is now impossible to switch from main thread to
another using dbx. Note also that, as usual, ladebug behaviour
is worst : after a long startup it cannot be interrupted and
generally after a while produce a core dump.

Our OS used versions are : V3.2C and V3.2G.

Note also that this is the same problem either /proc is
mounted or not.


Hope you can help us.

Thanks,

Jean-Marc.
T.RTitleUserPersonal
Name
DateLines
8819.1SMURF::DENHAMDigital UNIX KernelThu Feb 13 1997 09:166
    Well, just to make one thing clear -- if /proc isn't mounted,
    you'll never see more than one thread in the task, in spite
    of how many ps may show you. Why? Becuase the ptrace interface
    used in the absense of /proc doesn't have the slightest clue
    about what a thread is. Ptrace is extremely primitive. Unlike
    like /proc, it is also reasonably maintainable....
8819.2COL01::LINNARTZSun Feb 16 1997 14:255
    debugging also behaves diffrent for SUID programs. It's not
    nice, but perform debugging as the SUID user with the application
    having NON-SUID protection.
    
    Pit
8819.3COL01::LINNARTZMon Feb 17 1997 09:5015
    and two more possibilities, i've observed from time to time.
    If you're manipulating signalmask for SIGTRAP, the debugger
    won't stop at your breakpoint. The ladebug conference
    mentioned that this should be fixed with V4.0b, but the 
    partner I'm working with didn't give me a positigve feedback
    yet.
    
    Even harder to figure out is the ladebug behaviour when using 
    tcsh. I've observed a couple of times different behaviour 
    (not stoping at Bp's, etc) while working on the same executable.
    in brief, after they switched from tcsh to csh the problems 
    dissapeared. Being honest, I diden't have the time to further
    analyse the actu7al cause.
    
    Pit