On Aug 13, 2014, at 8:08 AM, Arun Sharma wrote: > On Tue, Aug 12, 2014 at 2:22 AM, David Abdurachmanov > <[email protected]> wrote: > >> From GDB: >> >> Program received signal SIGSEGV, Segmentation fault. >> access_mem (as=0x7fb4fd1710 <local_addr_space>, addr=1, val=0x7ffffe2dc8, >> write=0, arg=0x7ffffe2e40) at aarch64/Ginit.c:94 >> 94 *val = *(unw_word_t *) addr; >> >> >> In unw_is_signal_frame (unw_cursor_t *cursor) >> > > My guess is that the kernel you're using is missing unwind directives > in __kernel_gettimeofday(). Could you check? > On a recent kernel version, I saw this function was handwritten > assembly with just .cfi_startproc/endproc.
>From the linux trunk: 51 /* int __kernel_gettimeofday(struct timeval *tv, struct timezone *tz); */ 52 ENTRY(__kernel_gettimeofday) 53 .cfi_startproc 54 mov x2, x30 55 .cfi_register x30, x2 56 57 /* Acquire the sequence counter and get the timespec. */ 58 adr vdso_data, _vdso_data 59 1: seqcnt_acquire 60 cbnz use_syscall, 4f 61 62 /* If tv is NULL, skip to the timezone code. */ 63 cbz x0, 2f 64 bl __do_get_tspec 65 seqcnt_check w9, 1b 66 67 /* Convert ns to us. */ 68 mov x13, #1000 69 lsl x13, x13, x12 70 udiv x11, x11, x13 71 stp x10, x11, [x0, #TVAL_TV_SEC] 72 2: 73 /* If tz is NULL, return 0. */ 74 cbz x1, 3f 75 ldp w4, w5, [vdso_data, #VDSO_TZ_MINWEST] 76 stp w4, w5, [x1, #TZ_MINWEST] 77 3: 78 mov x0, xzr 79 ret x2 80 4: 81 /* Syscall fallback. */ 82 mov x8, #__NR_gettimeofday 83 svc #0 84 ret x2 85 .cfi_endproc 86 ENDPROC(__kernel_gettimeofday) .cfi_startproc/.cfi_register/.cfi_endproc is only used. For ARMv7 I see include/asm/unwind.h, UNWIND(.fnstart), UNWIND(.fnend), etc. Such GAS directives are for ARM (ARMv7) and they seem not to be part of ARM64/AArch64 (ARMv8). david _______________________________________________ Libunwind-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/libunwind-devel
