467fe4ca0c
* Add function core_dump_write_core_file(). It writes a core file for the current thread's team. The file format is similar to that of other OSs (i.e. ELF with PT_LOAD segments and a PT_NOTE segment), but most of the notes are Haiku specific (infos for team, areas, images, threads). More data will probably need to be added. * Add team flag TEAM_FLAG_DUMP_CORE, thread flag THREAD_FLAGS_TRAP_FOR_CORE_DUMP, and Team property coreDumpCondition, a condition variable available while a core dump is progress. A thread that finds its flag THREAD_FLAGS_TRAP_FOR_CORE_DUMP set before exiting the kernel to userland calls core_dump_trap_thread(), which blocks on the condition variable until the core dump has finished. We need the team's threads to stop so we can get their CPU state (and have a generally unchanging team state while writing the core file). * Add user debugger message B_DEBUG_WRITE_CORE_FILE. It causes core_dump_write_core_file() to be called for the team. * Dumping core as an immediate effect of a terminal signal has not been implemented yet, but that should be fairly straight forward. |
||
---|---|---|
.. | ||
arch | ||
boot | ||
disk_device_manager | ||
fs | ||
platform | ||
posix | ||
slab | ||
util | ||
vm | ||
AllocationTracking.h | ||
block_cache.h | ||
boot_device.h | ||
boot_item.h | ||
boot_splash.h | ||
commpage.h | ||
condition_variable.h | ||
console.h | ||
core_dump.h | ||
cpu.h | ||
debug_heap.h | ||
debug_hex_dump.h | ||
debug_paranoia.h | ||
debug.h | ||
debugger_keymaps.h | ||
DPC.h | ||
elf_priv.h | ||
elf.h | ||
file_cache.h | ||
frame_buffer_console.h | ||
generic_syscall.h | ||
heap.h | ||
int.h | ||
kdevice_manager.h | ||
kdriver_settings.h | ||
kernel_c++_structs.h | ||
kernel_daemon.h | ||
kernel.h | ||
kimage.h | ||
kmodule.h | ||
kscheduler.h | ||
ksignal.h | ||
ksyscalls.h | ||
ksystem_info.h | ||
listeners.h | ||
load_tracking.h | ||
lock.h | ||
low_resource_manager.h | ||
messaging.h | ||
MessagingServiceDefs.h | ||
Notifications.h | ||
port.h | ||
real_time_clock.h | ||
safemode.h | ||
scheduling_analysis.h | ||
sem.h | ||
smp.h | ||
syscall_restart.h | ||
system_profiler.h | ||
team.h | ||
thread_types.h | ||
thread.h | ||
timer.h | ||
tracing.h | ||
user_atomic.h | ||
user_debugger.h | ||
user_mutex.h | ||
UserEvent.h | ||
usergroup.h | ||
UserTimer.h | ||
vfs.h | ||
wait_for_objects.h |