damellis / ESP

The Example-based Sensor Predictions (ESP) system applies machine learning to real-time sensor data.
BSD 3-Clause "New" or "Revised" License
224 stars 52 forks source link

Error when running user.h files with no calibrators. #111

Closed damellis closed 8 years ago

damellis commented 8 years ago

I'm getting this error:

Thread 1Queue : com.apple.main-thread (serial)
#0  0x0000000100006277 in std::__1::vector<CalibrateProcess, std::__1::allocator<CalibrateProcess> >::size() const [inlined] at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/vector:641
#1  0x0000000100006277 in ofApp::setup() at /Users/mellis/Documents/Berkeley/Sensors/sensors/Xcode/SmartSensors/src/ofApp.cpp:176
#2  0x0000000100018425 in ofBaseApp::setup(ofEventArgs&) at /Users/mellis/Documents/Berkeley/Sensors/sensors/Xcode/SmartSensors/../../third-party/openFrameworks/libs/openFrameworks/app/ofBaseApp.h:63
#3  0x000000010067df23 in std::__1::shared_ptr<of::priv::Function<ofEventArgs, std::__1::recursive_mutex> > ofEvent<ofEventArgs, std::__1::recursive_mutex>::make_function<ofBaseApp>(ofBaseApp*, void (ofBaseApp::*)(ofEventArgs&), int)::'lambda'(void const*, ofEventArgs&)::operator()(void const*, ofEventArgs&) const [inlined] at /Users/mellis/Documents/Berkeley/Sensors/sensors/third-party/openFrameworks/libs/openFrameworksCompiled/project/osx/../../../../libs/openFrameworks/events/ofEvent.h:237
#4  0x000000010067df01 in decltype(std::__1::forward<ofBaseApp>(fp)(std::__1::forward<void const*, ofEventArgs&>(fp0))) std::__1::__invoke<std::__1::shared_ptr<of::priv::Function<ofEventArgs, std::__1::recursive_mutex> > ofEvent<ofEventArgs, std::__1::recursive_mutex>::make_function<ofBaseApp>(ofBaseApp*, void (ofBaseApp::*)(ofEventArgs&), int)::'lambda'(void const*, ofEventArgs&)&, void const*, ofEventArgs&>(ofBaseApp&&, void const*&&, ofEventArgs&&&) [inlined] at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__functional_base:416
#5  0x000000010067df01 in bool std::__1::__invoke_void_return_wrapper<bool>::__call<std::__1::shared_ptr<of::priv::Function<ofEventArgs, std::__1::recursive_mutex> > ofEvent<ofEventArgs, std::__1::recursive_mutex>::make_function<ofBaseApp>(ofBaseApp*, void (ofBaseApp::*)(ofEventArgs&), int)::'lambda'(void const*, ofEventArgs&)&, void const*, ofEventArgs&>(std::__1::shared_ptr<of::priv::Function<ofEventArgs, std::__1::recursive_mutex> > ofEvent<ofEventArgs, std::__1::recursive_mutex>::make_function<ofBaseApp>(ofBaseApp*, void (ofBaseApp::*)(ofEventArgs&), int)::'lambda'(void const*, ofEventArgs&)&&&, void const*&&, ofEventArgs&&&) [inlined] at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__functional_base:437
#6  0x000000010067df01 in std::__1::__function::__func<std::__1::shared_ptr<of::priv::Function<ofEventArgs, std::__1::recursive_mutex> > ofEvent<ofEventArgs, std::__1::recursive_mutex>::make_function<ofBaseApp>(ofBaseApp*, void (ofBaseApp::*)(ofEventArgs&), int)::'lambda'(void const*, ofEventArgs&), std::__1::allocator<std::__1::shared_ptr<of::priv::Function<ofEventArgs, std::__1::recursive_mutex> > ofEvent<ofEventArgs, std::__1::recursive_mutex>::make_function<ofBaseApp>(ofBaseApp*, void (ofBaseApp::*)(ofEventArgs&), int)::'lambda'(void const*, ofEventArgs&)>, bool (void const*, ofEventArgs&)>::operator()(void const*&&, ofEventArgs&) at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/functional:1437
#7  0x000000010065cf25 in std::__1::function<bool (void const*, ofEventArgs&)>::operator()(void const*, ofEventArgs&) const at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/functional:1817
#8  0x000000010065cd48 in of::priv::Function<ofEventArgs, std::__1::recursive_mutex>::notify(void const*, ofEventArgs&) [inlined] at /Users/mellis/Documents/Berkeley/Sensors/sensors/third-party/openFrameworks/libs/openFrameworksCompiled/project/osx/../../../../libs/openFrameworks/events/ofEvent.h:136
#9  0x000000010065cd29 in ofEvent<ofEventArgs, std::__1::recursive_mutex>::notify(void const*, ofEventArgs&) at /Users/mellis/Documents/Berkeley/Sensors/sensors/third-party/openFrameworks/libs/openFrameworksCompiled/project/osx/../../../../libs/openFrameworks/events/ofEvent.h:303
#10 0x000000010065bd7e in void ofNotifyEvent<ofEvent<ofEventArgs, std::__1::recursive_mutex>, ofEventArgs>(ofEvent<ofEventArgs, std::__1::recursive_mutex>&, ofEventArgs&) [inlined] at /Users/mellis/Documents/Berkeley/Sensors/sensors/third-party/openFrameworks/libs/openFrameworksCompiled/project/osx/../../../../libs/openFrameworks/events/ofEventUtils.h:222
#11 0x000000010065bd70 in ofCoreEvents::notifySetup() at /Users/mellis/Documents/Berkeley/Sensors/sensors/third-party/openFrameworks/libs/openFrameworks/events/ofEvents.cpp:193
#12 0x000000010067d405 in ofMainLoop::run(std::__1::shared_ptr<ofBaseApp>) at /Users/mellis/Documents/Berkeley/Sensors/sensors/third-party/openFrameworks/libs/openFrameworks/app/ofMainLoop.cpp:114
#13 0x000000010065899a in ofRunApp(std::__1::shared_ptr<ofBaseApp>) at /Users/mellis/Documents/Berkeley/Sensors/sensors/third-party/openFrameworks/libs/openFrameworks/app/ofAppRunner.cpp:158
#14 0x000000010065892d in ofRunApp(ofBaseApp*) at /Users/mellis/Documents/Berkeley/Sensors/sensors/third-party/openFrameworks/libs/openFrameworks/app/ofAppRunner.cpp:153
#15 0x0000000100001e51 in main at /Users/mellis/Documents/Berkeley/Sensors/sensors/Xcode/SmartSensors/src/main.cpp:12
#16 0x0000000100001d64 in start ()

at the second line of this code (in, I think calibrators.size()):

    vector<CalibrateProcess>& calibrators = calibrator_->getCalibrateProcesses();
    for (uint32_t i = 0; i < calibrators.size(); i++) {
        uint32_t label_dim = istream_->getNumOutputDimensions();
        Plotter plot;
        plot.setup(label_dim, calibrators[i].getName());
        plot.setColorPalette(color_palette.generate(label_dim));
        plot_calibrators_.push_back(plot);
    }
nebgnahz commented 8 years ago

The culprit is that calibrator_ is a nullptr if not initialized. Fixed with https://github.com/damellis/sensors/commit/1e3f81062ff506898f634a28db40e1ddc8b84934.