This question is mainly oriented towards Linux operating system. The below command enables core dump generation in the system.
ulimit -S -c unlimited
Can someone provide more details on what happens internally when any application crashes and when core dump is generated.
Any references would be of great help.
Thanks in advance.
I created a short blog post a while back that aims to answer questions 1 and 2 and part of 3 here https://venshare.com/blog/what-is-a-core-dump
For the other part of 3 - You can manually generate a coredump by sending it a signal as documentented here https://man7.org/linux/man-pages/man7/signal.7.html
e.g. To send a signal such as SIGQUIT use the kill command
kill -3 [pid]
Updated from Ben's points below