Re: _pfDirtCheck - dbx catch - DRAW process

New Message Reply Date view Thread view Subject view Author view

Marcus Barnes (marcus++at++multigen.com)
Thu, 13 Mar 1997 18:49:31 -0800


On Mar 13, 7:04pm, BOCCARA Michael wrote:
> Subject: _pfDirtCheck - dbx catch - DRAW process
>
>
> A you see this is not a fatal error, but an infinite loop that occurs in the
> DRAW process. In some of the first frame loops I also get this
> "pfMemory::unref" error.
>
> The problem is : I still cannot stop correctly the program in the
> "notify_handler" function.
> I set a breakpoint at the line number where I write "He He", and the
> breakpoint is set one line above. So the program stops every time the
> pfNotify function is called, even if the severity is beyond the PFNFY_LEVEL
> limit ; this is impossible to manage !

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


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:54:53 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.