Tracer Crash ============== Still get the crash with OTracerTest unless use `--load` option despite loading an event not making sense when just tracing:: OTracerTest --load // TODO: tidy this Tidy Actions -------------- * add argforced "--tracer" option to OTracerTest and isTracer to Opticks * use the isTracer to skip propagator setup in okop-/OpEngine Huh, why is genstep_buffer causing a tracing issue ? Perhsaps resolved with:: --- a/okop/OpEngine.cc Wed Nov 23 20:04:06 2016 +0800 +++ b/okop/OpEngine.cc Fri Nov 25 19:43:16 2016 +0800 @@ -43,17 +43,40 @@ m_ok(m_hub->getOpticks()), m_scene(new OScene(m_hub)), m_ocontext(m_scene->getOContext()), - m_entry(m_ocontext->addEntry(m_ok->getEntryCode())), - m_oevt(new OEvent(m_hub, m_ocontext)), - m_propagator(new OPropagator(m_hub, m_oevt, m_entry)), - m_seeder(new OpSeeder(m_hub, m_oevt)), - m_zeroer(new OpZeroer(m_hub, m_oevt)), - m_indexer(new OpIndexer(m_hub, m_oevt)) + m_entry(NULL), + m_oevt(NULL), + m_propagator(NULL), + m_seeder(NULL), + m_zeroer(NULL), + m_indexer(NULL) +{ + init(); + (*m_log)("DONE"); +} +void OpEngine::init() { m_ok->setOptiXVersion(OConfig::OptiXVersion()); - (*m_log)("DONE"); + if(m_ok->isLoad()) + { + LOG(warning) << "OpEngine::init skip initPropagation as just loading pre-cooked event " ; + } + else + { + initPropagation(); + } } +void OpEngine::initPropagation() +{ + m_entry = m_ocontext->addEntry(m_ok->getEntryCode()) ; + m_oevt = new OEvent(m_hub, m_ocontext); + m_propagator = new OPropagator(m_hub, m_oevt, m_entry); + m_seeder = new OpSeeder(m_hub, m_oevt) ; + m_zeroer = new OpZeroer(m_hub, m_oevt) ; + m_indexer = new OpIndexer(m_hub, m_oevt) ; +} + :: Interactor::key_pressed 340 2016-10-31 17:56:05.742 INFO [391393] [Interactor::key_pressed@428] Interactor::key_pressed O nextRenderStyle 2016-10-31 17:56:05.742 INFO [391393] [OTracer::trace_@128] OTracer::trace entry_index 1 trace_count 0 resolution_scale 1 size(2880,1704) ZProj.zw (-1.00975,-142.111) front 0.6618,0.7442,-0.0906 2016-10-31 17:56:05.742 INFO [391393] [OContext::close@216] OContext::close numEntryPoint 2 libc++abi.dylib: terminating with uncaught exception of type optix::Exception: Invalid value (Details: Function "RTresult _rtContextCompile(RTcontext)" caught exception: Initalization of non-primitive type genstep_buffer: Buffer object, [1769674]) Process 16111 stopped * thread #1: tid = 0x5f8e1, 0x00007fff91a2c866 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT frame #0: 0x00007fff91a2c866 libsystem_kernel.dylib`__pthread_kill + 10 libsystem_kernel.dylib`__pthread_kill + 10: -> 0x7fff91a2c866: jae 0x7fff91a2c870 ; __pthread_kill + 20 0x7fff91a2c868: movq %rax, %rdi 0x7fff91a2c86b: jmp 0x7fff91a29175 ; cerror_nocancel 0x7fff91a2c870: retq (lldb) bt * thread #1: tid = 0x5f8e1, 0x00007fff91a2c866 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT * frame #0: 0x00007fff91a2c866 libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x00007fff890c935c libsystem_pthread.dylib`pthread_kill + 92 frame #2: 0x00007fff8fe19b1a libsystem_c.dylib`abort + 125 frame #3: 0x00007fff8f6d9f31 libc++abi.dylib`abort_message + 257 frame #4: 0x00007fff8f6ff93a libc++abi.dylib`default_terminate_handler() + 240 frame #5: 0x00007fff8fa37322 libobjc.A.dylib`_objc_terminate() + 124 frame #6: 0x00007fff8f6fd1d1 libc++abi.dylib`std::__terminate(void (*)()) + 8 frame #7: 0x00007fff8f6fcc5b libc++abi.dylib`__cxa_throw + 124 frame #8: 0x000000010310b0c9 libOptiXRap.dylib`optix::ContextObj::checkError(this=0x0000000119388860, code=RT_ERROR_INVALID_VALUE) const + 121 at optixpp_namespace.h:1840 frame #9: 0x000000010311e187 libOptiXRap.dylib`optix::ContextObj::compile(this=0x0000000119388860) + 55 at optixpp_namespace.h:2376 frame #10: 0x000000010311d834 libOptiXRap.dylib`OContext::launch(this=0x0000000119388a10, lmode=30, entry=1, width=2880, height=1704, times=0x000000010d83b7a0) + 660 at OContext.cc:268 frame #11: 0x000000010312eccb libOptiXRap.dylib`OTracer::trace_(this=0x000000010d83e320) + 3995 at OTracer.cc:142 frame #12: 0x000000010377ba4b libOpticksGL.dylib`OKGLTracer::render(this=0x000000010d839520) + 123 at OKGLTracer.cc:109 frame #13: 0x000000010202fbd4 libOGLRap.dylib`OpticksViz::render(this=0x000000010c1fbca0) + 132 at OpticksViz.cc:401 frame #14: 0x000000010202ee9a libOGLRap.dylib`OpticksViz::renderLoop(this=0x000000010c1fbca0) + 906 at OpticksViz.cc:443 frame #15: 0x000000010202e5f2 libOGLRap.dylib`OpticksViz::visualize(this=0x000000010c1fbca0) + 34 at OpticksViz.cc:129 frame #16: 0x0000000103fac63f libokg4.dylib`OKG4Mgr::visualize(this=0x00007fff5fbfe560) + 47 at OKG4Mgr.cc:110 frame #17: 0x00000001000139db OKG4Test`main(argc=23, argv=0x00007fff5fbfe640) + 1515 at OKG4Test.cc:58 frame #18: 0x00007fff8ce9f5fd libdyld.dylib`start + 1 OpEngine ctor is adding entry G for generate:: (lldb) f 5 frame #5: 0x00000001036b3207 libOKOP.dylib`OpEngine::OpEngine(this=0x000000010c038260, hub=0x000000010560ada0) + 247 at OpEngine.cc:46 43 m_ok(m_hub->getOpticks()), 44 m_scene(new OScene(m_hub)), 45 m_ocontext(m_scene->getOContext()), -> 46 m_entry(m_ocontext->addEntry(m_ok->getEntryCode())), 47 m_oevt(new OEvent(m_hub, m_ocontext)), 48 m_propagator(new OPropagator(m_hub, m_oevt, m_entry)), 49 m_seeder(new OpSeeder(m_hub, m_oevt)), (lldb) f 4 frame #4: 0x000000010311374d libOptiXRap.dylib`OContext::addEntry(this=0x0000000116f41c70, code='G') + 285 at OContext.cc:45 42 OpticksEntry* OContext::addEntry(char code) 43 { 44 LOG(fatal) << "OContext::addEntry " << code ; -> 45 assert(0); 46 bool defer = true ; 47 unsigned index ; 48 switch(code) (lldb) p code (char) $0 = 'G' (lldb) (lldb) f 7 frame #7: 0x00000001037a1a94 libOK.dylib`OKPropagator::OKPropagator(this=0x000000010c038200, hub=0x000000010560ada0, idx=0x00000001087f8740, viz=0x00000001087f8e50) + 196 at OKPropagator.cc:44 41 m_hub(hub), 42 m_idx(idx), 43 m_viz(viz), -> 44 m_ok(m_hub->getOpticks()), 45 #ifdef WITH_OPTIX 46 m_engine(new OpEngine(m_hub)), 47 m_tracer(m_viz ? new OKGLTracer(m_engine,m_viz, true) : NULL ), (lldb)