Skip to content

Commit

Permalink
Add symbol and string table addresses to core file
Browse files Browse the repository at this point in the history
  • Loading branch information
weinhold committed Apr 27, 2016
1 parent 8c6cb8a commit 5cde7a8
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
6 changes: 6 additions & 0 deletions headers/os/kernel/elf.h
Expand Up @@ -668,6 +668,9 @@ typedef struct {
uint32 ni_text_size; /* size of text segment */
uint32 ni_data_base; /* base address of data segment */
uint32 ni_data_size; /* size of data segment */
uint32 ni_symbol_table; /* address of dynamic symbol table */
uint32 ni_symbol_hash; /* address of dynamic symbol hash */
uint32 ni_string_table; /* address of dynamic string table */
} Elf32_Note_Image_Entry;

/* NT_IMAGES:
Expand All @@ -688,6 +691,9 @@ typedef struct {
uint64 ni_text_size; /* size of text segment */
uint64 ni_data_base; /* base address of data segment */
uint64 ni_data_size; /* size of data segment */
uint64 ni_symbol_table; /* address of dynamic symbol table */
uint64 ni_symbol_hash; /* address of dynamic symbol hash */
uint64 ni_string_table; /* address of dynamic string table */
} Elf64_Note_Image_Entry;

/* NT_THREADS:
Expand Down
26 changes: 25 additions & 1 deletion src/system/kernel/debug/core_dump.cpp
Expand Up @@ -256,7 +256,10 @@ struct ImageInfo : DoublyLinkedListLinkImpl<ImageInfo> {
fText((addr_t)image->info.basic_info.text),
fData((addr_t)image->info.basic_info.data),
fTextSize(image->info.basic_info.text_size),
fDataSize(image->info.basic_info.data_size)
fDataSize(image->info.basic_info.data_size),
fSymbolTable((addr_t)image->info.symbol_table),
fSymbolHash((addr_t)image->info.symbol_hash),
fStringTable((addr_t)image->info.string_table)
{
}

Expand Down Expand Up @@ -332,6 +335,21 @@ struct ImageInfo : DoublyLinkedListLinkImpl<ImageInfo> {
return fDataSize;
}

addr_t SymbolTable() const
{
return fSymbolTable;
}

addr_t SymbolHash() const
{
return fSymbolHash;
}

addr_t StringTable() const
{
return fStringTable;
}

private:
image_id fId;
image_type fType;
Expand All @@ -344,6 +362,9 @@ struct ImageInfo : DoublyLinkedListLinkImpl<ImageInfo> {
addr_t fData;
size_t fTextSize;
size_t fDataSize;
addr_t fSymbolTable;
addr_t fSymbolHash;
addr_t fStringTable;
};


Expand Down Expand Up @@ -1281,6 +1302,9 @@ struct CoreDumper {
entry.ni_text_size = imageInfo->TextSize();
entry.ni_data_base = imageInfo->DataBase();
entry.ni_data_size = imageInfo->DataSize();
entry.ni_symbol_table = imageInfo->SymbolTable();
entry.ni_symbol_hash = imageInfo->SymbolHash();
entry.ni_string_table = imageInfo->StringTable();
writer.Write(entry);
}

Expand Down

0 comments on commit 5cde7a8

Please sign in to comment.