summaryrefslogtreecommitdiff
path: root/src/crash-stack
diff options
context:
space:
mode:
authorKunhoon Baik <knhoon.baik@samsung.com>2016-07-09 11:30:19 +0900
committerKunhoon Baik <knhoon.baik@samsung.com>2016-07-09 11:30:19 +0900
commit8abe6f64a90d33e2289762e4001f38a58791e46e (patch)
treeaa719c23f7cfd2089c677bdf18010b9b22c34f46 /src/crash-stack
parent069a4d7b6a1638b15b5dda6ed9925ab503f75467 (diff)
downloadcrash-worker-8abe6f64a90d33e2289762e4001f38a58791e46e.tar.gz
crash-worker-8abe6f64a90d33e2289762e4001f38a58791e46e.tar.bz2
crash-worker-8abe6f64a90d33e2289762e4001f38a58791e46e.zip
Change-Id: I63f07a7506d556de3d4c576fd141a007a34ceb0d
Diffstat (limited to 'src/crash-stack')
-rw-r--r--src/crash-stack/crash-stack-arm.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/crash-stack/crash-stack-arm.c b/src/crash-stack/crash-stack-arm.c
index 4edf54f..e1d6904 100644
--- a/src/crash-stack/crash-stack-arm.c
+++ b/src/crash-stack/crash-stack-arm.c
@@ -75,13 +75,19 @@ Boolean readT (Int32 a, void *v, size_t size)
{
// get data from segment
GElf_Phdr mem;
- GElf_Phdr *phdr = gelf_getphdr (g_core, segment, &mem);
- Dwarf_Addr offset_in_segment = a - phdr->p_vaddr;
- if (offset_in_segment < phdr->p_filesz)
+ GElf_Phdr *phdr;
+ Dwarf_Addr offset_in_segment;
+
+ phdr = gelf_getphdr (g_core, segment, &mem);
+ if (phdr != NULL)
{
- Dwarf_Addr offset_in_file = phdr->p_offset + offset_in_segment;
+ offset_in_segment = a - phdr->p_vaddr;
+ if (offset_in_segment < phdr->p_filesz)
+ {
+ Dwarf_Addr offset_in_file = phdr->p_offset + offset_in_segment;
- data = elf_getdata_rawchunk (g_core, offset_in_file, size, ELF_T_BYTE);
+ data = elf_getdata_rawchunk (g_core, offset_in_file, size, ELF_T_BYTE);
+ }
}
}