Except the C++ βCore dumpedβ line is telling you it just wrote a file out with the full state of the program at the time of the crash, you can load it up and see where it crashed and then go and look at what every local variable was at the time of the crash.
Pretty sure you can even step backwards in time with a good debugger to find out exactly how you got to the state youβre currently in.
I love gdb! I recently had to do a debug and wow its so cool! On gentoo I can compile everything with symbols and source and can do a complete stack trace.
Am I the only one in this thread who uses VSCode + GDB together? The inspection panes and ability to breakpoint and hover over variables to drill down in them is just great, seems like everyone should set up their own c_cpp_properties.json && tasks.json files and give it a try.
It intentionally acts as an intercept for such things, so that core dumps can be nicely packaged up and sent to maintainers in a GUI-friendly way so maintainers can get valuable debugging information even from non-tech-savvy users. If youβre running something on the terminal, it wonβt be intercepted and the core dump will be put in the working directory of the binary, but if you executed it through the GUI it will.
Assuming, of course, you turn crash interception on- itβs off by default since it might contain sensitive info. Apport itself is always on and running to handle Ubuntu errors, but the crash interception needs enabled.
Except the C++ βCore dumpedβ line is telling you it just wrote a file out with the full state of the program at the time of the crash, you can load it up and see where it crashed and then go and look at what every local variable was at the time of the crash.
Pretty sure you can even step backwards in time with a good debugger to find out exactly how you got to the state youβre currently in.
Where does it write the file
Nobody knows
deleted by creator
On a secret FBI server somewhere where they watch your failures and laugh
deleted by creator
I believe itβs
/var/lib/apport/coredumpon Ubuntu.imagine if it, like, told you this so you didnβt have to find out about it via a post on lemmy
imagine if it like, read that file and gave you a stack trace
gdb gives you waaaaaaaaaaaaaaay more than a stack trace.
β¦unless you build the executable with optimizations that remove the stack frame. Good luck debugging that sucker!
I love gdb! I recently had to do a debug and wow its so cool! On gentoo I can compile everything with symbols and source and can do a complete stack trace.
Am I the only one in this thread who uses VSCode + GDB together? The inspection panes and ability to breakpoint and hover over variables to drill down in them is just great, seems like everyone should set up their own c_cpp_properties.json && tasks.json files and give it a try.
i mean youβre expected to know the basic functioning of the compiler when you use it
Imagine if you knew the most basic foundational features of the language you were using.
Next weβll teach you about this neat thing called the compiler.
Iβm not a C/C++ dev, but isnβt
apportUbuntuβs crash reporter? Why would dumps be going into there?Though on a rhetorical thought, I am aware of systemdβs
coredumptctlso perhaps its collecting dumps the same way systemd does.https://wiki.ubuntu.com/Apport
It intentionally acts as an intercept for such things, so that core dumps can be nicely packaged up and sent to maintainers in a GUI-friendly way so maintainers can get valuable debugging information even from non-tech-savvy users. If youβre running something on the terminal, it wonβt be intercepted and the core dump will be put in the working directory of the binary, but if you executed it through the GUI it will.
Assuming, of course, you turn crash interception on- itβs off by default since it might contain sensitive info. Apport itself is always on and running to handle Ubuntu errors, but the crash interception needs enabled.
Ah I see, thatβs actually pretty cool - thanks!
np
you can set it
tl;dw: writes to the path in
/proc/sys/kernel/core_patternIf you are using systemd, thereβs a tool called coredumpctl.