8
hasu
3y

Unreal engine adventures part 3:
Code compiles. Everything is fine. Close engine and open it up again since I'm coding a anim graph node and it does not update it unless you restart it.
Unreal crashes...
...
Why the f. Like even if one node is buggy than glag it red and stop execution of it. Why does the entire engine decide not to start instead? That's utter bullshit! And all this because of an array out of bounds? Really? And this thing is supposed to be professional? Come on...

Comments
  • 1
    The graph is an interface to the C++ right?

    So exceeding bounds would be almost certainly a segfault.
  • 1
    @Demolishun so I fixed it. It was related to how I was acessing data eventually and apperently it is a known bug, which happenes in the editor but not when you package + launch the project.

    even if it is, why can't a node be wrapped in a way that these certain things wouldn't crash the entire engine? They do throw some usefull errors but why does the entire engine has to crash for it? For me it is like: if I compile with my IDE, the IDE doesn't crash when there is a bug. So why does this? It could interrupd the Animation-Runtime-Pipeline and show me the error instead.
  • 2
    @hasu A segfault means that you were accessing memory you didn't have, and this implies that you broke the allocator, possibly overwriting its metadata stored in empty heap space or corrupting arbitrary heap structures. At this point, all bets are off regarding the integrity of data for the whole memory space.
  • 0
    @homo-lorens yeah but I still would think that an editor should be able to catch this, and either disable the object that's causing it or do whatever. I mean, an IDE would throw you this error without dying in the process and the UE Editor should do this too. I mean, It writes it down neatly in a Log-file at least.

    But I still would wish for it to start the Editor and just disable the entire blue-print class or something instead of straightup not starting the editor at all. I then need to go fix the bug, delete intermediate + binary every time and rebuild everything. :/
  • 0
    @hasu There's no point in disabling the object or whatever once the heap is corrupted. I agree that there should be a better solution, but that better solution must involve stopping the segfaulted process in short order (no complex actions before exit). If I understand correctly, UE is running your code in its own process space, so the editor must be stopped in the event of a segfault.
  • 1
    @homo-lorens hm. that makes sense. But the Editor executes the Animation Pipeline there and this is where the bug was. So it would have been handled better to just disable the animation pipeline. Well. I don't know how it is internally implemented but anything would have been nicer than "engine won't start".
Add Comment