|
Jan Kratochvil |
3bff4d9 |
commit 50e64da58e648ff8708935add5b2a87b4e590edf
|
|
Jan Kratochvil |
3bff4d9 |
Author: Yao Qi <yao.qi@linaro.org>
|
|
Jan Kratochvil |
3bff4d9 |
Date: Tue Jul 25 10:15:25 2017 +0100
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
[ARM] Access FPSCR on vfpv2
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
GDB can fetch or store FPSCR on vfpv3, which has 32 VFP registers, but
|
|
Jan Kratochvil |
3bff4d9 |
fail to do so on vfpv2, which has 16 VFP registers. GDB code is incorrect
|
|
Jan Kratochvil |
3bff4d9 |
for vfpv2,
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
else if (tdep->vfp_register_count > 0
|
|
Jan Kratochvil |
3bff4d9 |
&& regno >= ARM_D0_REGNUM
|
|
Jan Kratochvil |
3bff4d9 |
&& regno <= ARM_D0_REGNUM + tdep->vfp_register_count)
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
while FPSCR register number is defined as ARM_D0_REGNUM + 32.
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
ARM_D0_REGNUM, /* VFP double-precision registers. */
|
|
Jan Kratochvil |
3bff4d9 |
ARM_D31_REGNUM = ARM_D0_REGNUM + 31,
|
|
Jan Kratochvil |
3bff4d9 |
ARM_FPSCR_REGNUM,
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
The code above uses "<=" rather than "<", in order to put FPSCR in the
|
|
Jan Kratochvil |
3bff4d9 |
range, but it is only correct when tdep->vfp_register_count is 32. On
|
|
Jan Kratochvil |
3bff4d9 |
vpfv2, it is 16, and FPSCR is out of the range, so fetch_vfp_regs or
|
|
Jan Kratochvil |
3bff4d9 |
store_vfp_regs are not called.
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
gdb:
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
2017-07-25 Yao Qi <yao.qi@linaro.org>
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
PR tdep/21717
|
|
Jan Kratochvil |
3bff4d9 |
* arm-linux-nat.c (arm_linux_fetch_inferior_registers): Update
|
|
Jan Kratochvil |
3bff4d9 |
condition for FPSCR.
|
|
Jan Kratochvil |
3bff4d9 |
(arm_linux_store_inferior_registers): Likewise.
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
### a/gdb/ChangeLog
|
|
Jan Kratochvil |
3bff4d9 |
### b/gdb/ChangeLog
|
|
Jan Kratochvil |
3bff4d9 |
## -1,3 +1,10 @@
|
|
Jan Kratochvil |
3bff4d9 |
+2017-07-25 Yao Qi <yao.qi@linaro.org>
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ PR tdep/21717
|
|
Jan Kratochvil |
3bff4d9 |
+ * arm-linux-nat.c (arm_linux_fetch_inferior_registers): Update
|
|
Jan Kratochvil |
3bff4d9 |
+ condition for FPSCR.
|
|
Jan Kratochvil |
3bff4d9 |
+ (arm_linux_store_inferior_registers): Likewise.
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
2017-06-04 Joel Brobecker <brobecker@adacore.com>
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
* version.in: Set GDB version number to 8.0.0.DATE-git.
|
|
Jan Kratochvil |
3bff4d9 |
--- a/gdb/arm-linux-nat.c
|
|
Jan Kratochvil |
3bff4d9 |
+++ b/gdb/arm-linux-nat.c
|
|
Jan Kratochvil |
3bff4d9 |
@@ -402,7 +402,8 @@ arm_linux_fetch_inferior_registers (struct target_ops *ops,
|
|
Jan Kratochvil |
3bff4d9 |
fetch_wmmx_regs (regcache);
|
|
Jan Kratochvil |
3bff4d9 |
else if (tdep->vfp_register_count > 0
|
|
Jan Kratochvil |
3bff4d9 |
&& regno >= ARM_D0_REGNUM
|
|
Jan Kratochvil |
3bff4d9 |
- && regno <= ARM_D0_REGNUM + tdep->vfp_register_count)
|
|
Jan Kratochvil |
3bff4d9 |
+ && (regno < ARM_D0_REGNUM + tdep->vfp_register_count
|
|
Jan Kratochvil |
3bff4d9 |
+ || regno == ARM_FPSCR_REGNUM))
|
|
Jan Kratochvil |
3bff4d9 |
fetch_vfp_regs (regcache);
|
|
Jan Kratochvil |
3bff4d9 |
}
|
|
Jan Kratochvil |
3bff4d9 |
}
|
|
Jan Kratochvil |
3bff4d9 |
@@ -439,7 +440,8 @@ arm_linux_store_inferior_registers (struct target_ops *ops,
|
|
Jan Kratochvil |
3bff4d9 |
store_wmmx_regs (regcache);
|
|
Jan Kratochvil |
3bff4d9 |
else if (tdep->vfp_register_count > 0
|
|
Jan Kratochvil |
3bff4d9 |
&& regno >= ARM_D0_REGNUM
|
|
Jan Kratochvil |
3bff4d9 |
- && regno <= ARM_D0_REGNUM + tdep->vfp_register_count)
|
|
Jan Kratochvil |
3bff4d9 |
+ && (regno < ARM_D0_REGNUM + tdep->vfp_register_count
|
|
Jan Kratochvil |
3bff4d9 |
+ || regno == ARM_FPSCR_REGNUM))
|
|
Jan Kratochvil |
3bff4d9 |
store_vfp_regs (regcache);
|
|
Jan Kratochvil |
3bff4d9 |
}
|
|
Jan Kratochvil |
3bff4d9 |
}
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
commit cd33a03d183a268b83ccbcae07f3788308e8d9f4
|
|
Jan Kratochvil |
3bff4d9 |
Author: Yao Qi <yao.qi@linaro.org>
|
|
Jan Kratochvil |
3bff4d9 |
Date: Tue Jul 25 11:38:50 2017 +0100
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
Catch exceptions thrown from gdbarch_skip_prologue
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
PR 21555 is caused by the exception during the prologue analysis when re-set
|
|
Jan Kratochvil |
3bff4d9 |
a breakpoint.
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
(gdb) bt
|
|
Jan Kratochvil |
3bff4d9 |
#0 memory_error_message (err=TARGET_XFER_E_IO, gdbarch=0x153db50, memaddr=93824992233232) at ../../binutils-gdb/gdb/corefile.c:192
|
|
Jan Kratochvil |
3bff4d9 |
#1 0x00000000005718ed in memory_error (err=TARGET_XFER_E_IO, memaddr=memaddr@entry=93824992233232) at ../../binutils-gdb/gdb/corefile.c:220
|
|
Jan Kratochvil |
3bff4d9 |
#2 0x00000000005719d6 in read_memory_object (object=object@entry=TARGET_OBJECT_CODE_MEMORY, memaddr=93824992233232, memaddr@entry=1, myaddr=myaddr@entry=0x7fffffffd0a0 "P\333S\001", len=len@entry=1) at ../../binutils-gdb/gdb/corefile.c:259
|
|
Jan Kratochvil |
3bff4d9 |
#3 0x0000000000571c6e in read_code (len=1, myaddr=0x7fffffffd0a0 "P\333S\001", memaddr=<optimized out>) at ../../binutils-gdb/gdb/corefile.c:287
|
|
Jan Kratochvil |
3bff4d9 |
#4 read_code_unsigned_integer (memaddr=memaddr@entry=93824992233232, len=len@entry=1, byte_order=byte_order@entry=BFD_ENDIAN_LITTLE) at ../../binutils-gdb/gdb/corefile.c:362
|
|
Jan Kratochvil |
3bff4d9 |
#5 0x000000000041d4a0 in amd64_analyze_prologue (gdbarch=gdbarch@entry=0x153db50, pc=pc@entry=93824992233232, current_pc=current_pc@entry=18446744073709551615, cache=cache@entry=0x7fffffffd1e0) at ../../binutils-gdb/gdb/amd64-tdep.c:2310
|
|
Jan Kratochvil |
3bff4d9 |
#6 0x000000000041e404 in amd64_skip_prologue (gdbarch=0x153db50, start_pc=93824992233232) at ../../binutils-gdb/gdb/amd64-tdep.c:2459
|
|
Jan Kratochvil |
3bff4d9 |
#7 0x000000000067bfb0 in skip_prologue_sal (sal=sal@entry=0x7fffffffd4e0) at ../../binutils-gdb/gdb/symtab.c:3628
|
|
Jan Kratochvil |
3bff4d9 |
#8 0x000000000067c4d8 in find_function_start_sal (sym=sym@entry=0x1549960, funfirstline=1) at ../../binutils-gdb/gdb/symtab.c:3501
|
|
Jan Kratochvil |
3bff4d9 |
#9 0x000000000060999d in symbol_to_sal (result=result@entry=0x7fffffffd5f0, funfirstline=<optimized out>, sym=sym@entry=0x1549960) at ../../binutils-gdb/gdb/linespec.c:3860
|
|
Jan Kratochvil |
3bff4d9 |
....
|
|
Jan Kratochvil |
3bff4d9 |
#16 0x000000000054b733 in location_to_sals (b=b@entry=0x15792d0, location=0x157c230, search_pspace=search_pspace@entry=0x1148120, found=found@entry=0x7fffffffdc64) at ../../binutils-gdb/gdb/breakpoint.c:14211
|
|
Jan Kratochvil |
3bff4d9 |
#17 0x000000000054c1f5 in breakpoint_re_set_default (b=0x15792d0) at ../../binutils-gdb/gdb/breakpoint.c:14301
|
|
Jan Kratochvil |
3bff4d9 |
#18 0x00000000005412a9 in breakpoint_re_set_one (bint=bint@entry=0x15792d0) at ../../binutils-gdb/gdb/breakpoint.c:14412
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
This problem can be fixed by
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
- either each prologue analyzer doesn't throw exception,
|
|
Jan Kratochvil |
3bff4d9 |
- or catch the exception thrown from gdbarch_skip_prologue,
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
I choose the latter because the former needs to fix *every* prologue
|
|
Jan Kratochvil |
3bff4d9 |
analyzer to not throw exception.
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
This error can be reproduced by changing reread.exp. The test reread.exp
|
|
Jan Kratochvil |
3bff4d9 |
has already test that breakpoint can be reset correctly after the
|
|
Jan Kratochvil |
3bff4d9 |
executable is re-read. This patch extends this test by compiling test c
|
|
Jan Kratochvil |
3bff4d9 |
file with and without -fPIE.
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
(gdb) run ^M
|
|
Jan Kratochvil |
3bff4d9 |
The program being debugged has been started already.^M
|
|
Jan Kratochvil |
3bff4d9 |
Start it from the beginning? (y or n) y^M
|
|
Jan Kratochvil |
3bff4d9 |
x86_64/gdb/testsuite/outputs/gdb.base/reread/reread' has changed; re-reading symbols.
|
|
Jan Kratochvil |
3bff4d9 |
Error in re-setting breakpoint 1: Cannot access memory at address 0x555555554790^M
|
|
Jan Kratochvil |
3bff4d9 |
Error in re-setting breakpoint 2: Cannot access memory at address 0x555555554790^M
|
|
Jan Kratochvil |
3bff4d9 |
Starting program: /scratch/yao/gdb/build-git/x86_64/gdb/testsuite/outputs/gdb.base/reread/reread ^M
|
|
Jan Kratochvil |
3bff4d9 |
This is foo^M
|
|
Jan Kratochvil |
3bff4d9 |
[Inferior 1 (process 27720) exited normally]^M
|
|
Jan Kratochvil |
3bff4d9 |
(gdb) FAIL: gdb.base/reread.exp: opts= "-fPIE" "ldflags=-pie" : run to foo() second time (the program exited)
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
This patch doesn't re-indent the code, to keep the patch simple.
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
gdb:
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
2017-07-25 Yao Qi <yao.qi@linaro.org>
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
PR gdb/21555
|
|
Jan Kratochvil |
3bff4d9 |
* arch-utils.c (gdbarch_skip_prologue_noexcept): New function.
|
|
Jan Kratochvil |
3bff4d9 |
* arch-utils.h (gdbarch_skip_prologue_noexcept): Declare.
|
|
Jan Kratochvil |
3bff4d9 |
* infrun.c: Include arch-utils.h
|
|
Jan Kratochvil |
3bff4d9 |
(handle_step_into_function): Call gdbarch_skip_prologue_noexcept.
|
|
Jan Kratochvil |
3bff4d9 |
(handle_step_into_function_backward): Likewise.
|
|
Jan Kratochvil |
3bff4d9 |
* symtab.c (skip_prologue_sal): Likewise.
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
gdb/testsuite:
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
2017-07-25 Yao Qi <yao.qi@linaro.org>
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
PR gdb/21555
|
|
Jan Kratochvil |
3bff4d9 |
* gdb.base/reread.exp: Wrap the whole test with two kinds of
|
|
Jan Kratochvil |
3bff4d9 |
compilation flags, with -fPIE and without -fPIE.
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
--- a/gdb/arch-utils.c
|
|
Jan Kratochvil |
3bff4d9 |
+++ b/gdb/arch-utils.c
|
|
Jan Kratochvil |
3bff4d9 |
@@ -964,6 +964,24 @@ default_guess_tracepoint_registers (struct gdbarch *gdbarch,
|
|
Jan Kratochvil |
3bff4d9 |
regcache_raw_supply (regcache, pc_regno, regs);
|
|
Jan Kratochvil |
3bff4d9 |
}
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
+/* See arch-utils.h. */
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+CORE_ADDR
|
|
Jan Kratochvil |
3bff4d9 |
+gdbarch_skip_prologue_noexcept (gdbarch *gdbarch, CORE_ADDR pc) noexcept
|
|
Jan Kratochvil |
3bff4d9 |
+{
|
|
Jan Kratochvil |
3bff4d9 |
+ CORE_ADDR new_pc = pc;
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ TRY
|
|
Jan Kratochvil |
3bff4d9 |
+ {
|
|
Jan Kratochvil |
3bff4d9 |
+ new_pc = gdbarch_skip_prologue (gdbarch, pc);
|
|
Jan Kratochvil |
3bff4d9 |
+ }
|
|
Jan Kratochvil |
3bff4d9 |
+ CATCH (ex, RETURN_MASK_ALL)
|
|
Jan Kratochvil |
3bff4d9 |
+ {}
|
|
Jan Kratochvil |
3bff4d9 |
+ END_CATCH
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ return new_pc;
|
|
Jan Kratochvil |
3bff4d9 |
+}
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
/* -Wmissing-prototypes */
|
|
Jan Kratochvil |
3bff4d9 |
extern initialize_file_ftype _initialize_gdbarch_utils;
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
--- a/gdb/arch-utils.h
|
|
Jan Kratochvil |
3bff4d9 |
+++ b/gdb/arch-utils.h
|
|
Jan Kratochvil |
3bff4d9 |
@@ -267,4 +267,10 @@ extern void default_guess_tracepoint_registers (struct gdbarch *gdbarch,
|
|
Jan Kratochvil |
3bff4d9 |
struct regcache *regcache,
|
|
Jan Kratochvil |
3bff4d9 |
CORE_ADDR addr);
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
+/* Wrapper to gdbarch_skip_prologue, but doesn't throw exception. Catch
|
|
Jan Kratochvil |
3bff4d9 |
+ exception thrown from gdbarch_skip_prologue, and return PC. */
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+extern CORE_ADDR gdbarch_skip_prologue_noexcept (gdbarch *gdbarch,
|
|
Jan Kratochvil |
3bff4d9 |
+ CORE_ADDR pc) noexcept;
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
#endif
|
|
Jan Kratochvil |
3bff4d9 |
--- a/gdb/infrun.c
|
|
Jan Kratochvil |
3bff4d9 |
+++ b/gdb/infrun.c
|
|
Jan Kratochvil |
3bff4d9 |
@@ -64,6 +64,7 @@
|
|
Jan Kratochvil |
3bff4d9 |
#include "event-loop.h"
|
|
Jan Kratochvil |
3bff4d9 |
#include "thread-fsm.h"
|
|
Jan Kratochvil |
3bff4d9 |
#include "common/enum-flags.h"
|
|
Jan Kratochvil |
3bff4d9 |
+#include "arch-utils.h"
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
/* Prototypes for local functions */
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
@@ -7314,8 +7315,8 @@ handle_step_into_function (struct gdbarch *gdbarch,
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
cust = find_pc_compunit_symtab (stop_pc);
|
|
Jan Kratochvil |
3bff4d9 |
if (cust != NULL && compunit_language (cust) != language_asm)
|
|
Jan Kratochvil |
3bff4d9 |
- ecs->stop_func_start = gdbarch_skip_prologue (gdbarch,
|
|
Jan Kratochvil |
3bff4d9 |
- ecs->stop_func_start);
|
|
Jan Kratochvil |
3bff4d9 |
+ ecs->stop_func_start
|
|
Jan Kratochvil |
3bff4d9 |
+ = gdbarch_skip_prologue_noexcept (gdbarch, ecs->stop_func_start);
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
stop_func_sal = find_pc_line (ecs->stop_func_start, 0);
|
|
Jan Kratochvil |
3bff4d9 |
/* Use the step_resume_break to step until the end of the prologue,
|
|
Jan Kratochvil |
3bff4d9 |
@@ -7393,8 +7394,8 @@ handle_step_into_function_backward (struct gdbarch *gdbarch,
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
cust = find_pc_compunit_symtab (stop_pc);
|
|
Jan Kratochvil |
3bff4d9 |
if (cust != NULL && compunit_language (cust) != language_asm)
|
|
Jan Kratochvil |
3bff4d9 |
- ecs->stop_func_start = gdbarch_skip_prologue (gdbarch,
|
|
Jan Kratochvil |
3bff4d9 |
- ecs->stop_func_start);
|
|
Jan Kratochvil |
3bff4d9 |
+ ecs->stop_func_start
|
|
Jan Kratochvil |
3bff4d9 |
+ = gdbarch_skip_prologue_noexcept (gdbarch, ecs->stop_func_start);
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
stop_func_sal = find_pc_line (stop_pc, 0);
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
--- a/gdb/symtab.c
|
|
Jan Kratochvil |
3bff4d9 |
+++ b/gdb/symtab.c
|
|
Jan Kratochvil |
3bff4d9 |
@@ -61,6 +61,7 @@
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
#include "parser-defs.h"
|
|
Jan Kratochvil |
3bff4d9 |
#include "completer.h"
|
|
Jan Kratochvil |
3bff4d9 |
+#include "arch-utils.h"
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
/* Forward declarations for local functions. */
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
@@ -3626,7 +3627,7 @@ skip_prologue_sal (struct symtab_and_line *sal)
|
|
Jan Kratochvil |
3bff4d9 |
if (gdbarch_skip_entrypoint_p (gdbarch))
|
|
Jan Kratochvil |
3bff4d9 |
pc = gdbarch_skip_entrypoint (gdbarch, pc);
|
|
Jan Kratochvil |
3bff4d9 |
if (skip)
|
|
Jan Kratochvil |
3bff4d9 |
- pc = gdbarch_skip_prologue (gdbarch, pc);
|
|
Jan Kratochvil |
3bff4d9 |
+ pc = gdbarch_skip_prologue_noexcept (gdbarch, pc);
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
/* For overlays, map pc back into its mapped VMA range. */
|
|
Jan Kratochvil |
3bff4d9 |
pc = overlay_mapped_address (pc, section);
|
|
Jan Kratochvil |
3bff4d9 |
--- a/gdb/testsuite/gdb.base/reread.exp
|
|
Jan Kratochvil |
3bff4d9 |
+++ b/gdb/testsuite/gdb.base/reread.exp
|
|
Jan Kratochvil |
3bff4d9 |
@@ -15,111 +15,131 @@
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
set prototypes 1
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
-# build the first test case
|
|
Jan Kratochvil |
3bff4d9 |
+# Build programs in PIE mode, to reproduce PR 21555.
|
|
Jan Kratochvil |
3bff4d9 |
+foreach_with_prefix opts {
|
|
Jan Kratochvil |
3bff4d9 |
+ { "" "" }
|
|
Jan Kratochvil |
3bff4d9 |
+ { "-fPIE" "ldflags=-pie" } } {
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
-set testfile1 "reread1"
|
|
Jan Kratochvil |
3bff4d9 |
-set srcfile1 ${testfile1}.c
|
|
Jan Kratochvil |
3bff4d9 |
-# Cygwin needs $EXEEXT.
|
|
Jan Kratochvil |
3bff4d9 |
-set binfile1 [standard_output_file ${testfile1}$EXEEXT]
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile1}" "${binfile1}" executable {debug nowarnings}] != "" } {
|
|
Jan Kratochvil |
3bff4d9 |
- untested "failed to compile first testcase"
|
|
Jan Kratochvil |
3bff4d9 |
- return -1
|
|
Jan Kratochvil |
3bff4d9 |
-}
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-# build the second test case
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-set testfile2 "reread2"
|
|
Jan Kratochvil |
3bff4d9 |
-set srcfile2 ${testfile2}.c
|
|
Jan Kratochvil |
3bff4d9 |
-set binfile2 [standard_output_file ${testfile2}$EXEEXT]
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${binfile2}" executable {debug nowarnings}] != ""
|
|
Jan Kratochvil |
3bff4d9 |
- && [gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${binfile2}" executable {debug nowarnings additional_flags=-DNO_SECTIONS}] != ""} {
|
|
Jan Kratochvil |
3bff4d9 |
- untested "failed to compile second testcase"
|
|
Jan Kratochvil |
3bff4d9 |
- return -1
|
|
Jan Kratochvil |
3bff4d9 |
-}
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-# Start with a fresh gdb.
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-set testfile "reread"
|
|
Jan Kratochvil |
3bff4d9 |
-set binfile [standard_output_file ${testfile}$EXEEXT]
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-gdb_start
|
|
Jan Kratochvil |
3bff4d9 |
-gdb_reinitialize_dir $srcdir/$subdir
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-# Load the first executable.
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-gdb_rename_execfile ${binfile1} ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
-gdb_load ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-# Set a breakpoint at foo
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-gdb_test "break foo" \
|
|
Jan Kratochvil |
3bff4d9 |
- "Breakpoint.*at.* file .*$srcfile1, line 14.*" \
|
|
Jan Kratochvil |
3bff4d9 |
- "breakpoint foo in first file"
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-# Run, should see "Breakpoint 1, foo () at hello1.c:14"
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-gdb_run_cmd
|
|
Jan Kratochvil |
3bff4d9 |
-gdb_test "" "Breakpoint.* foo .* at .*$srcfile1:14.*" "run to foo()"
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-# Restore first executable to its original name, and move
|
|
Jan Kratochvil |
3bff4d9 |
-# second executable into its place. Ensure that the new
|
|
Jan Kratochvil |
3bff4d9 |
-# executable is at least a second newer than the old.
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-gdb_rename_execfile ${binfile} ${binfile1}
|
|
Jan Kratochvil |
3bff4d9 |
-gdb_rename_execfile ${binfile2} ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
-gdb_test "shell sleep 1" ".*" ""
|
|
Jan Kratochvil |
3bff4d9 |
-gdb_touch_execfile ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-# Run a second time; GDB should detect that the executable has changed
|
|
Jan Kratochvil |
3bff4d9 |
-# and reset the breakpoints correctly.
|
|
Jan Kratochvil |
3bff4d9 |
-# Should see "Breakpoint 1, foo () at reread2.c:9"
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-set test "run to foo() second time"
|
|
Jan Kratochvil |
3bff4d9 |
-if [is_remote target] {
|
|
Jan Kratochvil |
3bff4d9 |
- unsupported $test
|
|
Jan Kratochvil |
3bff4d9 |
-} else {
|
|
Jan Kratochvil |
3bff4d9 |
- gdb_run_cmd
|
|
Jan Kratochvil |
3bff4d9 |
- gdb_test "" "Breakpoint.* foo .* at .*:9.*" $test
|
|
Jan Kratochvil |
3bff4d9 |
-}
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-### Second pass: verify that GDB checks the executable file's
|
|
Jan Kratochvil |
3bff4d9 |
-### timestamp when the program is *restarted*, not just when it exits.
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
-if [is_remote target] {
|
|
Jan Kratochvil |
3bff4d9 |
- unsupported "second pass: GDB should check for changes before running"
|
|
Jan Kratochvil |
3bff4d9 |
-} else {
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
- # Put the older executable back in place.
|
|
Jan Kratochvil |
3bff4d9 |
- gdb_rename_execfile ${binfile} ${binfile2}
|
|
Jan Kratochvil |
3bff4d9 |
- gdb_rename_execfile ${binfile1} ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
- # Restart GDB entirely.
|
|
Jan Kratochvil |
3bff4d9 |
- clean_restart ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
- # Set a breakpoint on foo and run to it.
|
|
Jan Kratochvil |
3bff4d9 |
- gdb_test "break foo" \
|
|
Jan Kratochvil |
3bff4d9 |
- "Breakpoint.*at.* file .*$srcfile1, line 14.*" \
|
|
Jan Kratochvil |
3bff4d9 |
- "second pass: breakpoint foo in first file"
|
|
Jan Kratochvil |
3bff4d9 |
- gdb_run_cmd
|
|
Jan Kratochvil |
3bff4d9 |
- gdb_test "" "Breakpoint.* foo .* at .*$srcfile1:14.*" "second pass: run to foo()"
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
- # This time, let the program run to completion. If GDB checks the
|
|
Jan Kratochvil |
3bff4d9 |
- # executable file's timestamp now, it won't notice any change.
|
|
Jan Kratochvil |
3bff4d9 |
- gdb_continue_to_end "second pass"
|
|
Jan Kratochvil |
3bff4d9 |
-
|
|
Jan Kratochvil |
3bff4d9 |
- # Now move the newer executable into place, and re-run. GDB
|
|
Jan Kratochvil |
3bff4d9 |
- # should still notice that the executable file has changed,
|
|
Jan Kratochvil |
3bff4d9 |
- # and still re-set the breakpoint appropriately.
|
|
Jan Kratochvil |
3bff4d9 |
- gdb_rename_execfile ${binfile} ${binfile1}
|
|
Jan Kratochvil |
3bff4d9 |
- gdb_rename_execfile ${binfile2} ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
- gdb_run_cmd
|
|
Jan Kratochvil |
3bff4d9 |
- gdb_test "" "Breakpoint.* foo .* at .*:9.*" "second pass: run to foo() second time"
|
|
Jan Kratochvil |
3bff4d9 |
-}
|
|
Jan Kratochvil |
3bff4d9 |
+ # build the first test case
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
+ set testfile1 "reread1"
|
|
Jan Kratochvil |
3bff4d9 |
+ set srcfile1 ${testfile1}.c
|
|
Jan Kratochvil |
3bff4d9 |
+ # Cygwin needs $EXEEXT.
|
|
Jan Kratochvil |
3bff4d9 |
+ set binfile1 [standard_output_file ${testfile1}$EXEEXT]
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ set testfile1_opt [list debug nowarnings \
|
|
Jan Kratochvil |
3bff4d9 |
+ additional_flags=[lindex $opts 0] \
|
|
Jan Kratochvil |
3bff4d9 |
+ [lindex $opts 1] ]
|
|
Jan Kratochvil |
3bff4d9 |
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile1}" "${binfile1}" \
|
|
Jan Kratochvil |
3bff4d9 |
+ executable ${testfile1_opt}] != "" } {
|
|
Jan Kratochvil |
3bff4d9 |
+ untested "failed to compile first testcase"
|
|
Jan Kratochvil |
3bff4d9 |
+ return -1
|
|
Jan Kratochvil |
3bff4d9 |
+ }
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ # build the second test case
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ set testfile2 "reread2"
|
|
Jan Kratochvil |
3bff4d9 |
+ set srcfile2 ${testfile2}.c
|
|
Jan Kratochvil |
3bff4d9 |
+ set binfile2 [standard_output_file ${testfile2}$EXEEXT]
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ set testfile2_opt1 [list debug nowarnings \
|
|
Jan Kratochvil |
3bff4d9 |
+ additional_flags=[lindex $opts 0] \
|
|
Jan Kratochvil |
3bff4d9 |
+ [lindex $opts 1]]
|
|
Jan Kratochvil |
3bff4d9 |
+ set testfile2_op2 [list debug nowarnings \
|
|
Jan Kratochvil |
3bff4d9 |
+ "additional_flags=-DNO_SECTIONS [lindex $opts 0]" \
|
|
Jan Kratochvil |
3bff4d9 |
+ [lindex $opts 1]]
|
|
Jan Kratochvil |
3bff4d9 |
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${binfile2}" \
|
|
Jan Kratochvil |
3bff4d9 |
+ executable ${testfile2_opt1}] != ""
|
|
Jan Kratochvil |
3bff4d9 |
+ && [gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${binfile2}" \
|
|
Jan Kratochvil |
3bff4d9 |
+ executable ${testfile2_opt2}] != ""} {
|
|
Jan Kratochvil |
3bff4d9 |
+ untested "failed to compile second testcase"
|
|
Jan Kratochvil |
3bff4d9 |
+ return -1
|
|
Jan Kratochvil |
3bff4d9 |
+ }
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ # Start with a fresh gdb.
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ set testfile "reread"
|
|
Jan Kratochvil |
3bff4d9 |
+ set binfile [standard_output_file ${testfile}$EXEEXT]
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_start
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_reinitialize_dir $srcdir/$subdir
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ # Load the first executable.
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_rename_execfile ${binfile1} ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_load ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ # Set a breakpoint at foo
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_test "break foo" \
|
|
Jan Kratochvil |
3bff4d9 |
+ "Breakpoint.*at.* file .*$srcfile1, line 14.*" \
|
|
Jan Kratochvil |
3bff4d9 |
+ "breakpoint foo in first file"
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ # Run, should see "Breakpoint 1, foo () at hello1.c:14"
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_run_cmd
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_test "" "Breakpoint.* foo .* at .*$srcfile1:14.*" "run to foo()"
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ # Restore first executable to its original name, and move
|
|
Jan Kratochvil |
3bff4d9 |
+ # second executable into its place. Ensure that the new
|
|
Jan Kratochvil |
3bff4d9 |
+ # executable is at least a second newer than the old.
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_rename_execfile ${binfile} ${binfile1}
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_rename_execfile ${binfile2} ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_test "shell sleep 1" ".*" ""
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_touch_execfile ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ # Run a second time; GDB should detect that the executable has changed
|
|
Jan Kratochvil |
3bff4d9 |
+ # and reset the breakpoints correctly.
|
|
Jan Kratochvil |
3bff4d9 |
+ # Should see "Breakpoint 1, foo () at reread2.c:9"
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ set test "run to foo() second time"
|
|
Jan Kratochvil |
3bff4d9 |
+ if [is_remote target] {
|
|
Jan Kratochvil |
3bff4d9 |
+ unsupported $test
|
|
Jan Kratochvil |
3bff4d9 |
+ } else {
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_run_cmd
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_test "" "Breakpoint.* foo .* at .*:9.*" $test
|
|
Jan Kratochvil |
3bff4d9 |
+ }
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ ### Second pass: verify that GDB checks the executable file's
|
|
Jan Kratochvil |
3bff4d9 |
+ ### timestamp when the program is *restarted*, not just when it exits.
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ if [is_remote target] {
|
|
Jan Kratochvil |
3bff4d9 |
+ unsupported "second pass: GDB should check for changes before running"
|
|
Jan Kratochvil |
3bff4d9 |
+ } else {
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ # Put the older executable back in place.
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_rename_execfile ${binfile} ${binfile2}
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_rename_execfile ${binfile1} ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ # Restart GDB entirely.
|
|
Jan Kratochvil |
3bff4d9 |
+ clean_restart ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ # Set a breakpoint on foo and run to it.
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_test "break foo" \
|
|
Jan Kratochvil |
3bff4d9 |
+ "Breakpoint.*at.* file .*$srcfile1, line 14.*" \
|
|
Jan Kratochvil |
3bff4d9 |
+ "second pass: breakpoint foo in first file"
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_run_cmd
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_test "" "Breakpoint.* foo .* at .*$srcfile1:14.*" \
|
|
Jan Kratochvil |
3bff4d9 |
+ "second pass: run to foo()"
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ # This time, let the program run to completion. If GDB checks the
|
|
Jan Kratochvil |
3bff4d9 |
+ # executable file's timestamp now, it won't notice any change.
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_continue_to_end "second pass"
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ # Now move the newer executable into place, and re-run. GDB
|
|
Jan Kratochvil |
3bff4d9 |
+ # should still notice that the executable file has changed,
|
|
Jan Kratochvil |
3bff4d9 |
+ # and still re-set the breakpoint appropriately.
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_rename_execfile ${binfile} ${binfile1}
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_rename_execfile ${binfile2} ${binfile}
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_run_cmd
|
|
Jan Kratochvil |
3bff4d9 |
+ gdb_test "" "Breakpoint.* foo .* at .*:9.*" \
|
|
Jan Kratochvil |
3bff4d9 |
+ "second pass: run to foo() second time"
|
|
Jan Kratochvil |
3bff4d9 |
+ }
|
|
Jan Kratochvil |
3bff4d9 |
+
|
|
Jan Kratochvil |
3bff4d9 |
+ }
|
|
Jan Kratochvil |
3bff4d9 |
# End of tests.
|
|
Jan Kratochvil |
3bff4d9 |
|
|
Jan Kratochvil |
3bff4d9 |
return 0
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
commit 16eb6b2db49e6cf2fdca56efd37689fcc170cd37
|
|
Jan Kratochvil |
99b34dc |
Author: Leszek Swirski <leszeks@google.com>
|
|
Jan Kratochvil |
99b34dc |
Date: Mon Aug 7 16:40:38 2017 +0200
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
Fix dwarf2_string_attr for -gsplit-dwarf
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
The dwarf2_string_attr did not allow DW_FORM_GNU_str_index as a form for
|
|
Jan Kratochvil |
99b34dc |
string types. This manifested as null strings in the namespace_name
|
|
Jan Kratochvil |
99b34dc |
lookup (replaced with "(anonymous namespace)") when debugging
|
|
Jan Kratochvil |
99b34dc |
Fission-compiled code.
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
gdb/ChangeLog:
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
* dwarf2read.c (dwarf2_string_attr): Allow DW_FORM_GNU_strp_alt.
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
### a/gdb/ChangeLog
|
|
Jan Kratochvil |
99b34dc |
### b/gdb/ChangeLog
|
|
Jan Kratochvil |
99b34dc |
## -1,3 +1,7 @@
|
|
Jan Kratochvil |
99b34dc |
+2017-08-07 Leszek Swirski <leszeks@google.com>
|
|
Jan Kratochvil |
99b34dc |
+
|
|
Jan Kratochvil |
99b34dc |
+ * dwarf2read.c (dwarf2_string_attr): Allow DW_FORM_GNU_strp_alt.
|
|
Jan Kratochvil |
99b34dc |
+
|
|
Jan Kratochvil |
99b34dc |
2017-08-07 Simon Marchi <simon.marchi@ericsson.com>
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
* remote-sim.c (gdbsim_load): Remove char **argv local variable.
|
|
Jan Kratochvil |
99b34dc |
--- a/gdb/dwarf2read.c
|
|
Jan Kratochvil |
99b34dc |
+++ b/gdb/dwarf2read.c
|
|
Jan Kratochvil |
99b34dc |
@@ -17623,7 +17623,8 @@ dwarf2_string_attr (struct die_info *die, unsigned int name, struct dwarf2_cu *c
|
|
Jan Kratochvil |
99b34dc |
if (attr != NULL)
|
|
Jan Kratochvil |
99b34dc |
{
|
|
Jan Kratochvil |
99b34dc |
if (attr->form == DW_FORM_strp || attr->form == DW_FORM_line_strp
|
|
Jan Kratochvil |
99b34dc |
- || attr->form == DW_FORM_string || attr->form == DW_FORM_GNU_strp_alt)
|
|
Jan Kratochvil |
99b34dc |
+ || attr->form == DW_FORM_string || DW_FORM_GNU_str_index
|
|
Jan Kratochvil |
99b34dc |
+ || attr->form == DW_FORM_GNU_strp_alt)
|
|
Jan Kratochvil |
99b34dc |
str = DW_STRING (attr);
|
|
Jan Kratochvil |
99b34dc |
else
|
|
Jan Kratochvil |
99b34dc |
complaint (&symfile_complaints,
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
commit b33404388e5bbd8a1fddfde73cd4593ae2b557e8
|
|
Jan Kratochvil |
99b34dc |
Author: H.J. Lu <hjl.tools@gmail.com>
|
|
Jan Kratochvil |
99b34dc |
Date: Wed Aug 9 05:01:55 2017 -0700
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
gdb: Fix build failure with GCC 7
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
Fix:
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
/export/gnu/import/git/sources/binutils-gdb/gdb/dwarf2read.c: In function ‘const char* dwarf2_string_attr(die_info*, unsigned int, dwarf2_cu*)’:
|
|
Jan Kratochvil |
99b34dc |
/export/gnu/import/git/sources/binutils-gdb/gdb/dwarf2read.c:17626:39: error: enum constant in boolean context [-Werror=int-in-bool-context]
|
|
Jan Kratochvil |
99b34dc |
|| attr->form == DW_FORM_string || DW_FORM_GNU_str_index
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
* dwarf2read.c (dwarf2_string_attr): Fix a typo.
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
### a/gdb/ChangeLog
|
|
Jan Kratochvil |
99b34dc |
### b/gdb/ChangeLog
|
|
Jan Kratochvil |
99b34dc |
## -1,3 +1,7 @@
|
|
Jan Kratochvil |
99b34dc |
+2017-08-09 H.J. Lu <hongjiu.lu@intel.com>
|
|
Jan Kratochvil |
99b34dc |
+
|
|
Jan Kratochvil |
99b34dc |
+ * dwarf2read.c (dwarf2_string_attr): Fix a typo.
|
|
Jan Kratochvil |
99b34dc |
+
|
|
Jan Kratochvil |
99b34dc |
2017-08-09 Alex Lindsay <alexlindsay239@gmail.com>
|
|
Jan Kratochvil |
99b34dc |
Yao Qi <yao.qi@linaro.org>
|
|
Jan Kratochvil |
99b34dc |
|
|
Jan Kratochvil |
99b34dc |
--- a/gdb/dwarf2read.c
|
|
Jan Kratochvil |
99b34dc |
+++ b/gdb/dwarf2read.c
|
|
Jan Kratochvil |
99b34dc |
@@ -17623,7 +17623,8 @@ dwarf2_string_attr (struct die_info *die, unsigned int name, struct dwarf2_cu *c
|
|
Jan Kratochvil |
99b34dc |
if (attr != NULL)
|
|
Jan Kratochvil |
99b34dc |
{
|
|
Jan Kratochvil |
99b34dc |
if (attr->form == DW_FORM_strp || attr->form == DW_FORM_line_strp
|
|
Jan Kratochvil |
99b34dc |
- || attr->form == DW_FORM_string || DW_FORM_GNU_str_index
|
|
Jan Kratochvil |
99b34dc |
+ || attr->form == DW_FORM_string
|
|
Jan Kratochvil |
99b34dc |
+ || attr->form == DW_FORM_GNU_str_index
|
|
Jan Kratochvil |
99b34dc |
|| attr->form == DW_FORM_GNU_strp_alt)
|
|
Jan Kratochvil |
99b34dc |
str = DW_STRING (attr);
|
|
Jan Kratochvil |
99b34dc |
else
|