I'm creating a particle-life simulation in rust and i'm using Nannou for rendering graphics. Everything seems to work when i run "cargo run" but when i tried doing a "cargo run --release" it sometimes produces a segfault, sometimes a blank screen and one time it worked. How is this possible?
Code to reproduce:
use nannou::prelude::*;
struct Model {
_window: window::Id,
}
fn main() {
nannou::app(model).update(update).run();
}
fn update(app: &App, model: &mut Model, _update: Update) {}
fn model(app: &App) -> Model {
let _window = app
.new_window()
.view(view)
.build()
.expect("COULDN'T BUILD WINDOW!");
Model { _window }
}
fn view(app: &App, model: &Model, frame: Frame) {
let draw = app.draw();
draw.background().color(BLACK);
draw.to_frame(app, &frame).expect("Couldn't build frame");
}
Haven't got to refactoring yet.
I'm running the code on wsl2 Ubuntu.
I have tried running gdb on the binary produced but I realised that i had no idea what i were doing and it didn't help at all.
My graphics is running through wslg, I dont know if it uses x11 or wayland.
Running the repruduced example through gdb gives me:
Starting program: /home/tage/particle_life/target/release/particle_life
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff7b93640 (LWP 63758)]
[New Thread 0x7fffe7359640 (LWP 63760)]
[New Thread 0x7fffe6b58640 (LWP 63761)]
[New Thread 0x7fffe6357640 (LWP 63762)]
[New Thread 0x7fffe5b56640 (LWP 63763)]
[New Thread 0x7fffe5355640 (LWP 63764)]
[New Thread 0x7fffe4b54640 (LWP 63765)]
[New Thread 0x7fffcffff640 (LWP 63766)]
[New Thread 0x7fffcf7fe640 (LWP 63767)]
[New Thread 0x7fffceffd640 (LWP 63768)]
[New Thread 0x7fffce7fc640 (LWP 63769)]
[New Thread 0x7fffcdffb640 (LWP 63770)]
[New Thread 0x7fffcd7fa640 (LWP 63771)]
[New Thread 0x7fffccff9640 (LWP 63772)]
[New Thread 0x7fffabfff640 (LWP 63773)]
[New Thread 0x7fffab7fe640 (LWP 63774)]
[New Thread 0x7fffaaffd640 (LWP 63775)]
[New Thread 0x7fffaa7fc640 (LWP 63776)]
[New Thread 0x7fffa9ffb640 (LWP 63777)]
[New Thread 0x7fffa97fa640 (LWP 63778)]
[New Thread 0x7fffa8ff9640 (LWP 63779)]
[New Thread 0x7fff8bfff640 (LWP 63780)]
[New Thread 0x7fff8b7fe640 (LWP 63781)]
[New Thread 0x7fff8affd640 (LWP 63782)]
[New Thread 0x7fff8a7fc640 (LWP 63783)]
[New Thread 0x7fff89ffb640 (LWP 63784)]
[New Thread 0x7fff897fa640 (LWP 63785)]
Thread 1 "particle_life" received signal SIGSEGV, Segmentation fault.
0x00007ffff738267d in ?? () from /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so