Kernel+LibELF: Store termination signal in coredump ProcessInfo

This commit is contained in:
Linus Groh 2021-01-03 21:46:38 +01:00 committed by Andreas Kling
parent b5437216e2
commit 0571a17f57
Notes: sideshowbarker 2024-07-19 00:08:17 +09:00
3 changed files with 4 additions and 0 deletions

View file

@ -216,6 +216,7 @@ ByteBuffer CoreDump::create_notes_process_data() const
ELF::Core::ProcessInfo info {}; ELF::Core::ProcessInfo info {};
info.header.type = ELF::Core::NotesEntryHeader::Type::ProcessInfo; info.header.type = ELF::Core::NotesEntryHeader::Type::ProcessInfo;
info.pid = m_process->pid().value(); info.pid = m_process->pid().value();
info.termination_signal = m_process->termination_signal();
process_data.append((void*)&info, sizeof(info)); process_data.append((void*)&info, sizeof(info));

View file

@ -449,6 +449,8 @@ public:
void terminate_due_to_signal(u8 signal); void terminate_due_to_signal(u8 signal);
KResult send_signal(u8 signal, Process* sender); KResult send_signal(u8 signal, Process* sender);
u8 termination_signal() const { return m_termination_signal; }
u16 thread_count() const u16 thread_count() const
{ {
return m_thread_count.load(AK::MemoryOrder::memory_order_relaxed); return m_thread_count.load(AK::MemoryOrder::memory_order_relaxed);

View file

@ -51,6 +51,7 @@ struct [[gnu::packed]] NotesEntry {
struct [[gnu::packed]] ProcessInfo { struct [[gnu::packed]] ProcessInfo {
NotesEntryHeader header; NotesEntryHeader header;
int pid; int pid;
u8 termination_signal;
char executable_path[]; // Null terminated char executable_path[]; // Null terminated
}; };