[info-performer] Segmentation Fault in pfCuller.

Date view Thread view Subject view Author view

From: Ken Sewell (sewell++at++dramail.com)
Date: 08/18/2003 13:49:10


I'm currently running performer 3.0.2 under Suse linux 8.2 using gcc 3.3.
I am using my own Draw callback, but not my own Cull callback.

I have an application that loads up terrain and sets an eyepoint
using pfDoubleDCS's. The application is also using cliptexture emulation.
If I run it stand-alone, the application runs fine. However, if I add a
node to the scenegraph (like when a new player is added to the simulation)
I immediately get a segmentation fault during the next cull. The
models are valid and according to performer are loaded correctly. I
check to ensure that there are no NULL pointers. I've tried it using a
single process, as well as splitting it into app, cull, draw and compute
processes. I linked to the debug libraries and it seems to be dying in
the _pfCuller::pf_getGSetStateCullPgm function. Under the debug
libraries, it looks like the pfString and pfBillboard pointer arguments to
this function is NULL. I don't know if this is allowed since this code
is part of the closed source part of Performer. I've attached the
information from gdb, I don't know if someone might be able to see
something obvious in the dump. Anyway, any help provided will be greatly
appreciated, I've been fighting this problem for a month and I'm really
stuck. Thanks.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 4823)]
0x404f3562 in _pfCuller::pf_getGSetStateCullPgm(pfGeoSet*, pfBillboard*,
int, pfString*) (this=0x42fb5778, gset=0x543e4750,
    bb=0x0, bbid=0, str=0x0) at ../pfLists.h:1255
1255 ../pfLists.h: No such file or directory.
        in ../pfLists.h
(gdb) where
#0 0x404f3562 in _pfCuller::pf_getGSetStateCullPgm(pfGeoSet*,
    pfBillboard*, int, pfString*) (this=0x42fb5778,
    gset=0x543e4750, bb=0x0, bbid=0, str=0x0) at ../pfLists.h:1255
#1 0x404f25eb in _pfCuller::addCullPgm(pfGeoSet*) (this=0x42fb5778,
    gset=0x543e4750) at ../pfCuller.C:593
#2 0x40495a1a in pfGeode::nb_cullProgram(int, int, _pfCullPgInfo*,
    _pfCuller*) (this=0x543ec9d0, cullMode=7, cullResult=3,
    cullPgInfo=0xbfff4e80, trav=0x42fb5778) at ../pfLists.h:226
#3 0x40498ee0 in pfGroup::nb_cullProgram(int, int, _pfCullPgInfo*,
    _pfCuller*) (this=0x41a94120, cullMode=7, cullResult=3,
    cullPgInfo=0xbfff4f50, trav=0x42fb5778) at ../pfBuffer.h:275
#4 0x4047b4a4 in pfDoubleSCS::nb_cullProgram(int, int, _pfCullPgInfo*,
    _pfCuller*) (this=0x41a93f08, cullMode=7,
    cullResult=3, cullPgInfo=0xbfff5010, trav=0x42fb5778) at
    ../pfBuffer.h:275
#5 0x4047b4a4 in pfDoubleSCS::nb_cullProgram(int, int, _pfCullPgInfo*,
    _pfCuller*) (this=0x41a2df78, cullMode=7,
    cullResult=3, cullPgInfo=0xbfff50d0, trav=0x42fb5778) at
    ../pfBuffer.h:275
#6 0x404c90e1 in pfScene::nb_cullProgram(int, int, _pfCullPgInfo*,
    _pfCuller*) (this=0x41a2bb40, cullMode=7, cullResult=3,
    cullPgInfo=0xbfff5190, trav=0x42fb5778) at ../pfBuffer.h:275
#7 0x404f1587 in _pfCuller::nb_cull() (this=0x42fb5778) at
    ../pfCuller.C:405
#8 0x4050d6b5 in beginDraw (binFlag=0) at ../pfProcess.C:8473
#9 0x4050d7ac in pfDraw () at ../pfProcess.C:8533
#10 0x0805aa25 in drawFunc(pfChannel*, void*) (chan=0x42f775c8, data=0x0)
    at mitl_otw.cc:557
#11 0x40460953 in pfChannel::pf_callDrawFunc() (this=0x0) at
    ../pfBuffer.h:275
#12 0x4050d3fc in doDraw(pfChannel*, pfPipe*, int*) (drawChan=0x42f775c8,
    cPipe=0x3, itime=0xbfffdba8)
    at ../pfProcess.C:8381
#13 0x40509876 in appCullDraw (startV=2014) at ../pfProcess.C:5802
#14 0x4050a90a in pfFrame () at ../pfProcess.C:6345
#15 0x0805b364 in main (argc=1, argv=0xbfffe5a4) at mitl_otw.cc:838
#16 0x410ed8ae in __libc_start_main () from /lib/libc.so.6

Ken Sewell Defense Research Associates
Project Engineer 3915 Germany Lane, Suite 102
937-431-1644 Beavercreek, Ohio 45431-1608
sewell++at++dramail.com


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Mon Aug 18 2003 - 15:18:10 PDT