Marcus Barnes (marcus++at++multigen.com)
Thu, 13 Mar 1997 18:49:31 -0800
You need to learn how to debug multiple processes using dbx. This isn't too
hard to do ... it starts with setting the dbx variable $promptonfork. Here's
what dbx.help file says:
$promptonfork - if 1 prompt user to add child process to pool on fork;
The reply is taken from the current input file (which may be
the screen).
if 0, child not added to pool. if 2, child added to pool.
If 0, the running process does not stop on a fork or sproc.
Exec always stops the running process.
The important commands to understand are: active, resume pid, set and showproc.
See the dbx User's Guide, Chapter 8 for more details.
===========example session that stops in the DRAW process==================
221> dbx /usr/sbin/perfly
dbx version 6.2 Mar 9 1996 15:23:28
set Executable /usr/sbin/perfly
(dbx) $promptonfork=1
(dbx) run -m4
Process 21131 (perfly_ogl) started
Process 21132 (perfly_ogl) has executed the "fork" system call
Add child to process pool (no if no)?no
Process 21131 (perfly_ogl) stopped on sysexit fork at [_fork:39 ,0xfa4a0b8]
Source (of fork.s) not available for Process 21131
(dbx) c
PF Info: All 1 processors available on this machine.
Process 21133 (perfly_ogl) has executed the "fork" system call
Add child to process pool (no if no)?yes
Process 21133 (perfly_ogl) added to pool
Process 21133 (perfly_ogl) stopped on sysexit fork at [_fork:39 ,0xfa4a0b8]
Process 21131 (perfly_ogl) stopped on sysexit fork at [_fork:39 ,0xfa4a0b8]
Source (of fork.s) not available for Process 21131
(dbx) active 21133
Process 21133 (perfly_ogl) stopped on sysexit fork
Source (of fork.s) not available for Process 21133
(dbx) set $promptonfork=0
(dbx) resume pid 21131
(dbx) PF Info: pfdMakeShared optimizing traversal
PF Unique state objects:
PF None
PF Redundant state objects:
PF None
PF Performance statistics:
PF Elapsed time: 0.000 sec
PF
PF Info: pfdCombineLayers optimizing traversal
PF Performance statistics:
PF Elapsed time: 0.000 sec
PF
PF Info: pfdMakeSharedScene scene pfGeoState traversal
PF Performance statistics:
PF pfGeoStates: 0
PF Elapsed time: 0.000 sec
PF
PF Info: No Databases loaded
PF
PF Info: Initialized 1 Pipe
PF
(dbx) showproc
Process 21131 (perfly_ogl) running
Process 21133 (perfly_ogl) stopped on sysexit fork
(dbx) bp pfDraw
Process 21133: [3] stop in pfDraw
(dbx) c
PF Info: DRAW process(21133) forked
PF Info: scaleFonts 1.00 - Load: 1.12 secs
PF Info: Initialized 1 Channel
PF
PF Notice: Using 72Hz video rate.
PF Info: scaleFonts 1.00 - Load: 0.01 secs
PF Info: Asynchronous X Input Display opened on Display
:0.0
PF Info: scaleFonts 0.91 - Load: 1.14 secs
PF Info: scaleFonts - Make Font Bitmaps: 0.20 secs
[3] Process 21133 (perfly_ogl) stopped at [pfDraw:4696 ,0x53acdc]
Source (of ../../../lib/libpf/pfProcess.C) not available for Process
21133
(dbx) t
> 0 pfDraw(0x0, 0x180f6208, 0x180fe030, 0x100000c)
["../../../lib/libpf/pfProcess.C":4696, 0x53acdc]
1 DrawFunc(0x18172a90, 0x0, 0x180fe030, 0x100000c)
["../../../../../sample/apps/C/common/main.c":239, 0x4786a0]
2 pfChannel::pf_callDrawFunc(void)(0x183132c0, 0x180f6208, 0x180fe030,
0x100000c) ["../../../lib/libpf/pfChannel.C":1992, 0x4feba8]
3 doDraw(pfChannel*,pfPipe*,int*)(0x183132c0, 0x18101dc0, 0x7fff2d1c,
0x100000c) ["../../../lib/libpf/pfProcess.C":4554, 0x53a854]
4 mpDraw(void)(0x0, 0x180f6208, 0x180fe030, 0x100000c)
["../../../lib/libpf/pfProcess.C":4992, 0x53b9f4]
5 pfConfig(0x0, 0x18101c70, 0x180fe030, 0x100000c)
["../../../lib/libpf/pfProcess.C":1761, 0x533d18]
6 main(0x2, 0x7fff2ed4, 0x180fe030, 0x100000c)
["../../../../../sample/apps/C/common/main.c":97, 0x478388]
7 __istart() ["crt1tinit.s":13, 0x4782f0]
(dbx) d all
(dbx) trace
Process 21133: [4] trace
(dbx) c
[4] Process 21133 (perfly_ogl) stopped at [pfDraw:4696 +0x14,0x53acf0]
[4] Process 21133 (perfly_ogl) stopped at [pfDraw:4697 ,0x53ad00]
[4] Process 21133 (perfly_ogl) stopped at [pfDraw:4699 ,0x53ad14]
[4] Process 21133 (perfly_ogl) stopped at [pfDraw:4701 ,0x53ad24]
[4] Process 21133 (perfly_ogl) stopped at [pfDraw:4699 +0x14,0x53ad28]
[4] Process 21133 (perfly_ogl) stopped at [pfDraw:4701 +0x8,0x53ad2c]
Process 21133 (perfly_ogl) terminated
(dbx) q
===============================end of example================================
Regards.
-- + Marcus Barnes, Technical Staff mailto:marcus++at++multigen.com + + Multigen Inc. http://www.multigen.com + + 550 S. Winchester Blvd. phoneto:1-408-556-2654 + + Suite 500 San Jose CA 95128 faxto:1-408-261-4102 +======================================================================= List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/ Submissions: info-performer++at++sgi.com Admin. requests: info-performer-request++at++sgi.com
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:54:53 PDT