Age | Commit message (Collapse) | Author | Files | Lines |
|
Fix all trailing-text-in-parentheses duplicates exposed by previous patch.
Tested on x86_64-linux and aarch64-linux.
|
|
If you have set up a backtrace limit, and the backtrace stops
because of this in an inline frame with arguments, you get an
assertion failure:
```
(gdb) bt
(gdb) set backtrace limit 2
(gdb) bt
C:/src/repos/binutils-gdb.git/gdb/frame.c:3346: internal-error: reinflate: Assertion `m_cached_level >= -1' failed.
```
And if this one is fixed, there is another one as well:
```
(gdb) bt
C:/src/repos/binutils-gdb.git/gdb/dwarf2/loc.c:1160: internal-error: dwarf_expr_reg_to_entry_parameter: Assertion `frame != NULL' failed.
```
The reason for both of them is this kind of loop:
```
while (get_frame_type (frame) == INLINE_FRAME)
frame = get_prev_frame (frame);
```
Since get_prev_frame respects the backtrace limit, it will return
NULL, and from there on you can't continue.
This changes these loops to use get_prev_frame_always instead, so
you always get a non-inline frame in the end.
With this backtrace works:
```
(gdb) bt
(gdb)
```
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29865
Approved-By: Andrew Burgess <aburgess@redhat.com>
|
|
This commit is the result of the following actions:
- Running gdb/copyright.py to update all of the copyright headers to
include 2024,
- Manually updating a few files the copyright.py script told me to
update, these files had copyright headers embedded within the
file,
- Regenerating gdbsupport/Makefile.in to refresh it's copyright
date,
- Using grep to find other files that still mentioned 2023. If
these files were updated last year from 2022 to 2023 then I've
updated them this year to 2024.
I'm sure I've probably missed some dates. Feel free to fix them up as
you spot them.
|
|
This commit is the result of running the gdb/copyright.py script,
which automated the update of the copyright year range for all
source files managed by the GDB project to be updated to include
year 2023.
|
|
It is not necessary to call get_compiler_info before calling
test_compiler_info, and, after recent commits that removed setting up
the gcc_compiled, true, and false globals from get_compiler_info,
there is now no longer any need for any test script to call
get_compiler_info directly.
As a result every call to get_compiler_info outside of lib/gdb.exp is
redundant, and this commit removes them all.
There should be no change in what is tested after this commit.
|
|
This commit brings all the changes made by running gdb/copyright.py
as per GDB's Start of New Year Procedure.
For the avoidance of doubt, all changes in this commits were
performed by the script.
|
|
This commits the result of running gdb/copyright.py as per our Start
of New Year procedure...
gdb/ChangeLog
Update copyright year range in copyright header of all GDB files.
|
|
We currently have two flushing commands 'flushregs' and 'maint
flush-symbol-cache'. I'm planning to add at least one more so I
thought it might be nice if we bundled these together into one place.
And so I created the 'maint flush ' command prefix. Currently there
are two commands:
(gdb) maint flush symbol-cache
(gdb) maint flush register-cache
Unfortunately, even though both of the existing flush commands are
maintenance commands, I don't know how keen we about deleting existing
commands for fear of breaking things in the wild. So, both of the
existing flush commands 'maint flush-symbol-cache' and 'flushregs' are
still around as deprecated aliases to the new commands.
I've updated the testsuite to use the new command syntax, and updated
the documentation too.
gdb/ChangeLog:
* NEWS: Mention new commands, and that the old commands are now
deprecated.
* cli/cli-cmds.c (maintenanceflushlist): Define.
* cli/cli-cmds.h (maintenanceflushlist): Declare.
* maint.c (_initialize_maint_cmds): Initialise
maintenanceflushlist.
* regcache.c: Add 'cli/cli-cmds.h' include.
(reg_flush_command): Add header comment.
(_initialize_regcache): Create new 'maint flush register-cache'
command, make 'flushregs' an alias.
* symtab.c: Add 'cli/cli-cmds.h' include.
(_initialize_symtab): Create new 'maint flush symbol-cache'
command, make old command an alias.
gdb/doc/ChangeLog:
* gdb.texinfo (Symbols): Document 'maint flush symbol-cache'.
(Maintenance Commands): Document 'maint flush register-cache'.
gdb/testsuite/ChangeLog:
* gdb.base/c-linkage-name.exp: Update to use new 'maint flush ...'
commands.
* gdb.base/killed-outside.exp: Likewise.
* gdb.opt/inline-bt.exp: Likewise.
* gdb.perf/gmonster-null-lookup.py: Likewise.
* gdb.perf/gmonster-print-cerr.py: Likewise.
* gdb.perf/gmonster-ptype-string.py: Likewise.
* gdb.python/py-unwind.exp: Likewise.
|
|
gdb/ChangeLog:
Update copyright year range in all GDB files.
|
|
This commit applies all changes made after running the gdb/copyright.py
script.
Note that one file was flagged by the script, due to an invalid
copyright header
(gdb/unittests/basic_string_view/element_access/char/empty.cc).
As the file was copied from GCC's libstdc++-v3 testsuite, this commit
leaves this file untouched for the time being; a patch to fix the header
was sent to gcc-patches first.
gdb/ChangeLog:
Update copyright year range in all GDB files.
|
|
gdb/ChangeLog:
Update copyright year range in all GDB files
|
|
This applies the second part of GDB's End of Year Procedure, which
updates the copyright year range in all of GDB's files.
gdb/ChangeLog:
Update copyright year range in all GDB files.
|
|
I noticed more occurrences of improper test names. The rather mechanical,
tedious and large patch below addresses, hopefully, most of the leftover cases.
As usual, another pair of eyes is welcome to check if missed something or did
an invalid substitution.
This patch also fixes the prepare_for_testing calls to pass proper test names.
gdb/testsuite/ChangeLog:
2016-12-23 Luis Machado <lgustavo@codesourcery.com>
Fix test names for the following files:
* gdb.ada/exec_changed.exp
* gdb.ada/info_types.exp
* gdb.arch/aarch64-atomic-inst.exp
* gdb.arch/aarch64-fp.exp
* gdb.arch/altivec-abi.exp
* gdb.arch/altivec-regs.exp
* gdb.arch/amd64-byte.exp
* gdb.arch/amd64-disp-step.exp
* gdb.arch/amd64-dword.exp
* gdb.arch/amd64-entry-value-inline.exp
* gdb.arch/amd64-entry-value-param.exp
* gdb.arch/amd64-entry-value-paramref.exp
* gdb.arch/amd64-entry-value.exp
* gdb.arch/amd64-i386-address.exp
* gdb.arch/amd64-invalid-stack-middle.exp
* gdb.arch/amd64-invalid-stack-top.exp
* gdb.arch/amd64-optimout-repeat.exp
* gdb.arch/amd64-prologue-skip.exp
* gdb.arch/amd64-prologue-xmm.exp
* gdb.arch/amd64-stap-special-operands.exp
* gdb.arch/amd64-stap-wrong-subexp.exp
* gdb.arch/amd64-tailcall-cxx.exp
* gdb.arch/amd64-tailcall-noret.exp
* gdb.arch/amd64-tailcall-ret.exp
* gdb.arch/amd64-tailcall-self.exp
* gdb.arch/amd64-word.exp
* gdb.arch/arm-bl-branch-dest.exp
* gdb.arch/arm-disp-step.exp
* gdb.arch/arm-neon.exp
* gdb.arch/arm-single-step-kernel-helper.exp
* gdb.arch/avr-flash-qualifier.exp
* gdb.arch/disp-step-insn-reloc.exp
* gdb.arch/e500-abi.exp
* gdb.arch/e500-regs.exp
* gdb.arch/ftrace-insn-reloc.exp
* gdb.arch/i386-avx512.exp
* gdb.arch/i386-bp_permanent.exp
* gdb.arch/i386-byte.exp
* gdb.arch/i386-cfi-notcurrent.exp
* gdb.arch/i386-disp-step.exp
* gdb.arch/i386-dr3-watch.exp
* gdb.arch/i386-float.exp
* gdb.arch/i386-gnu-cfi.exp
* gdb.arch/i386-mpx-map.exp
* gdb.arch/i386-mpx-sigsegv.exp
* gdb.arch/i386-mpx-simple_segv.exp
* gdb.arch/i386-mpx.exp
* gdb.arch/i386-permbkpt.exp
* gdb.arch/i386-prologue.exp
* gdb.arch/i386-signal.exp
* gdb.arch/i386-size-overlap.exp
* gdb.arch/i386-unwind.exp
* gdb.arch/i386-word.exp
* gdb.arch/mips-fcr.exp
* gdb.arch/powerpc-d128-regs.exp
* gdb.arch/powerpc-stackless.exp
* gdb.arch/ppc64-atomic-inst.exp
* gdb.arch/s390-stackless.exp
* gdb.arch/s390-tdbregs.exp
* gdb.arch/s390-vregs.exp
* gdb.arch/sparc-sysstep.exp
* gdb.arch/thumb-bx-pc.exp
* gdb.arch/thumb-singlestep.exp
* gdb.arch/thumb2-it.exp
* gdb.arch/vsx-regs.exp
* gdb.asm/asm-source.exp
* gdb.base/a2-run.exp
* gdb.base/advance.exp
* gdb.base/all-bin.exp
* gdb.base/anon.exp
* gdb.base/args.exp
* gdb.base/arithmet.exp
* gdb.base/async-shell.exp
* gdb.base/async.exp
* gdb.base/attach-pie-noexec.exp
* gdb.base/attach-twice.exp
* gdb.base/auto-load.exp
* gdb.base/bang.exp
* gdb.base/bitfields.exp
* gdb.base/break-always.exp
* gdb.base/break-caller-line.exp
* gdb.base/break-entry.exp
* gdb.base/break-inline.exp
* gdb.base/break-on-linker-gcd-function.exp
* gdb.base/break-probes.exp
* gdb.base/break.exp
* gdb.base/breakpoint-shadow.exp
* gdb.base/call-ar-st.exp
* gdb.base/call-sc.exp
* gdb.base/call-signal-resume.exp
* gdb.base/call-strs.exp
* gdb.base/callfuncs.exp
* gdb.base/catch-fork-static.exp
* gdb.base/catch-gdb-caused-signals.exp
* gdb.base/catch-load.exp
* gdb.base/catch-signal-fork.exp
* gdb.base/catch-signal.exp
* gdb.base/catch-syscall.exp
* gdb.base/charset.exp
* gdb.base/checkpoint.exp
* gdb.base/chng-syms.exp
* gdb.base/code-expr.exp
* gdb.base/code_elim.exp
* gdb.base/commands.exp
* gdb.base/completion.exp
* gdb.base/complex.exp
* gdb.base/cond-expr.exp
* gdb.base/condbreak.exp
* gdb.base/consecutive.exp
* gdb.base/continue-all-already-running.exp
* gdb.base/coredump-filter.exp
* gdb.base/corefile.exp
* gdb.base/dbx.exp
* gdb.base/debug-expr.exp
* gdb.base/define.exp
* gdb.base/del.exp
* gdb.base/disabled-location.exp
* gdb.base/disasm-end-cu.exp
* gdb.base/disasm-optim.exp
* gdb.base/display.exp
* gdb.base/duplicate-bp.exp
* gdb.base/ena-dis-br.exp
* gdb.base/ending-run.exp
* gdb.base/enumval.exp
* gdb.base/environ.exp
* gdb.base/eu-strip-infcall.exp
* gdb.base/eval-avoid-side-effects.exp
* gdb.base/eval-skip.exp
* gdb.base/exitsignal.exp
* gdb.base/expand-psymtabs.exp
* gdb.base/filesym.exp
* gdb.base/find-unmapped.exp
* gdb.base/finish.exp
* gdb.base/float.exp
* gdb.base/foll-exec-mode.exp
* gdb.base/foll-exec.exp
* gdb.base/foll-fork.exp
* gdb.base/fortran-sym-case.exp
* gdb.base/freebpcmd.exp
* gdb.base/func-ptr.exp
* gdb.base/func-ptrs.exp
* gdb.base/funcargs.exp
* gdb.base/gcore-buffer-overflow.exp
* gdb.base/gcore-relro-pie.exp
* gdb.base/gcore-relro.exp
* gdb.base/gcore.exp
* gdb.base/gdb1090.exp
* gdb.base/gdb11530.exp
* gdb.base/gdb11531.exp
* gdb.base/gdb1821.exp
* gdb.base/gdbindex-stabs.exp
* gdb.base/gdbvars.exp
* gdb.base/hbreak.exp
* gdb.base/hbreak2.exp
* gdb.base/included.exp
* gdb.base/infcall-input.exp
* gdb.base/inferior-died.exp
* gdb.base/infnan.exp
* gdb.base/info-macros.exp
* gdb.base/info-os.exp
* gdb.base/info-proc.exp
* gdb.base/info-shared.exp
* gdb.base/info-target.exp
* gdb.base/infoline.exp
* gdb.base/interp.exp
* gdb.base/interrupt.exp
* gdb.base/jit-reader.exp
* gdb.base/jit-simple.exp
* gdb.base/kill-after-signal.exp
* gdb.base/kill-detach-inferiors-cmd.exp
* gdb.base/label.exp
* gdb.base/langs.exp
* gdb.base/ldbl_e308.exp
* gdb.base/line-symtabs.exp
* gdb.base/linespecs.exp
* gdb.base/list.exp
* gdb.base/long_long.exp
* gdb.base/longest-types.exp
* gdb.base/maint.exp
* gdb.base/max-value-size.exp
* gdb.base/memattr.exp
* gdb.base/mips_pro.exp
* gdb.base/morestack.exp
* gdb.base/moribund-step.exp
* gdb.base/multi-forks.exp
* gdb.base/nested-addr.exp
* gdb.base/nextoverexit.exp
* gdb.base/noreturn-finish.exp
* gdb.base/noreturn-return.exp
* gdb.base/nostdlib.exp
* gdb.base/offsets.exp
* gdb.base/opaque.exp
* gdb.base/pc-fp.exp
* gdb.base/permissions.exp
* gdb.base/print-symbol-loading.exp
* gdb.base/prologue-include.exp
* gdb.base/psymtab.exp
* gdb.base/ptype.exp
* gdb.base/random-signal.exp
* gdb.base/randomize.exp
* gdb.base/range-stepping.exp
* gdb.base/readline-ask.exp
* gdb.base/recpar.exp
* gdb.base/recurse.exp
* gdb.base/relational.exp
* gdb.base/restore.exp
* gdb.base/return-nodebug.exp
* gdb.base/return.exp
* gdb.base/run-after-attach.exp
* gdb.base/save-bp.exp
* gdb.base/scope.exp
* gdb.base/sect-cmd.exp
* gdb.base/set-lang-auto.exp
* gdb.base/set-noassign.exp
* gdb.base/setvar.exp
* gdb.base/sigall.exp
* gdb.base/sigbpt.exp
* gdb.base/siginfo-addr.exp
* gdb.base/siginfo-infcall.exp
* gdb.base/siginfo-obj.exp
* gdb.base/siginfo.exp
* gdb.base/signals-state-child.exp
* gdb.base/signest.exp
* gdb.base/sigstep.exp
* gdb.base/sizeof.exp
* gdb.base/skip.exp
* gdb.base/solib-corrupted.exp
* gdb.base/solib-nodir.exp
* gdb.base/solib-search.exp
* gdb.base/stack-checking.exp
* gdb.base/stale-infcall.exp
* gdb.base/stap-probe.exp
* gdb.base/start.exp
* gdb.base/step-break.exp
* gdb.base/step-bt.exp
* gdb.base/step-line.exp
* gdb.base/step-over-exit.exp
* gdb.base/step-over-syscall.exp
* gdb.base/step-resume-infcall.exp
* gdb.base/step-test.exp
* gdb.base/store.exp
* gdb.base/structs3.exp
* gdb.base/sym-file.exp
* gdb.base/symbol-without-target_section.exp
* gdb.base/term.exp
* gdb.base/testenv.exp
* gdb.base/ui-redirect.exp
* gdb.base/until.exp
* gdb.base/unwindonsignal.exp
* gdb.base/value-double-free.exp
* gdb.base/vla-datatypes.exp
* gdb.base/vla-ptr.exp
* gdb.base/vla-sideeffect.exp
* gdb.base/volatile.exp
* gdb.base/watch-cond-infcall.exp
* gdb.base/watch-cond.exp
* gdb.base/watch-non-mem.exp
* gdb.base/watch-read.exp
* gdb.base/watch-vfork.exp
* gdb.base/watchpoint-cond-gone.exp
* gdb.base/watchpoint-delete.exp
* gdb.base/watchpoint-hw-hit-once.exp
* gdb.base/watchpoint-hw.exp
* gdb.base/watchpoint-stops-at-right-insn.exp
* gdb.base/watchpoints.exp
* gdb.base/wchar.exp
* gdb.base/whatis-exp.exp
* gdb.btrace/buffer-size.exp
* gdb.btrace/data.exp
* gdb.btrace/delta.exp
* gdb.btrace/dlopen.exp
* gdb.btrace/enable.exp
* gdb.btrace/exception.exp
* gdb.btrace/function_call_history.exp
* gdb.btrace/gcore.exp
* gdb.btrace/instruction_history.exp
* gdb.btrace/nohist.exp
* gdb.btrace/reconnect.exp
* gdb.btrace/record_goto-step.exp
* gdb.btrace/record_goto.exp
* gdb.btrace/rn-dl-bind.exp
* gdb.btrace/segv.exp
* gdb.btrace/step.exp
* gdb.btrace/stepi.exp
* gdb.btrace/tailcall-only.exp
* gdb.btrace/tailcall.exp
* gdb.btrace/tsx.exp
* gdb.btrace/unknown_functions.exp
* gdb.btrace/vdso.exp
* gdb.compile/compile-ifunc.exp
* gdb.compile/compile-ops.exp
* gdb.compile/compile-print.exp
* gdb.compile/compile-setjmp.exp
* gdb.cp/abstract-origin.exp
* gdb.cp/ambiguous.exp
* gdb.cp/annota2.exp
* gdb.cp/annota3.exp
* gdb.cp/anon-ns.exp
* gdb.cp/anon-struct.exp
* gdb.cp/anon-union.exp
* gdb.cp/arg-reference.exp
* gdb.cp/baseenum.exp
* gdb.cp/bool.exp
* gdb.cp/breakpoint.exp
* gdb.cp/bs15503.exp
* gdb.cp/call-c.exp
* gdb.cp/casts.exp
* gdb.cp/chained-calls.exp
* gdb.cp/class2.exp
* gdb.cp/classes.exp
* gdb.cp/cmpd-minsyms.exp
* gdb.cp/converts.exp
* gdb.cp/cp-relocate.exp
* gdb.cp/cpcompletion.exp
* gdb.cp/cpexprs.exp
* gdb.cp/cplabel.exp
* gdb.cp/cplusfuncs.exp
* gdb.cp/cpsizeof.exp
* gdb.cp/ctti.exp
* gdb.cp/derivation.exp
* gdb.cp/destrprint.exp
* gdb.cp/dispcxx.exp
* gdb.cp/enum-class.exp
* gdb.cp/exception.exp
* gdb.cp/exceptprint.exp
* gdb.cp/expand-psymtabs-cxx.exp
* gdb.cp/expand-sals.exp
* gdb.cp/extern-c.exp
* gdb.cp/filename.exp
* gdb.cp/formatted-ref.exp
* gdb.cp/fpointer.exp
* gdb.cp/gdb1355.exp
* gdb.cp/gdb2495.exp
* gdb.cp/hang.exp
* gdb.cp/impl-this.exp
* gdb.cp/infcall-dlopen.exp
* gdb.cp/inherit.exp
* gdb.cp/iostream.exp
* gdb.cp/koenig.exp
* gdb.cp/local.exp
* gdb.cp/m-data.exp
* gdb.cp/m-static.exp
* gdb.cp/mb-ctor.exp
* gdb.cp/mb-inline.exp
* gdb.cp/mb-templates.exp
* gdb.cp/member-name.exp
* gdb.cp/member-ptr.exp
* gdb.cp/meth-typedefs.exp
* gdb.cp/method.exp
* gdb.cp/method2.exp
* gdb.cp/minsym-fallback.exp
* gdb.cp/misc.exp
* gdb.cp/namelessclass.exp
* gdb.cp/namespace-enum.exp
* gdb.cp/namespace-nested-import.exp
* gdb.cp/namespace.exp
* gdb.cp/nextoverthrow.exp
* gdb.cp/no-dmgl-verbose.exp
* gdb.cp/non-trivial-retval.exp
* gdb.cp/noparam.exp
* gdb.cp/nsdecl.exp
* gdb.cp/nsimport.exp
* gdb.cp/nsnested.exp
* gdb.cp/nsnoimports.exp
* gdb.cp/nsrecurs.exp
* gdb.cp/nsstress.exp
* gdb.cp/nsusing.exp
* gdb.cp/operator.exp
* gdb.cp/oranking.exp
* gdb.cp/overload-const.exp
* gdb.cp/overload.exp
* gdb.cp/ovldbreak.exp
* gdb.cp/ovsrch.exp
* gdb.cp/paren-type.exp
* gdb.cp/parse-lang.exp
* gdb.cp/pass-by-ref.exp
* gdb.cp/pr-1023.exp
* gdb.cp/pr-1210.exp
* gdb.cp/pr-574.exp
* gdb.cp/pr10687.exp
* gdb.cp/pr12028.exp
* gdb.cp/pr17132.exp
* gdb.cp/pr17494.exp
* gdb.cp/pr9067.exp
* gdb.cp/pr9167.exp
* gdb.cp/pr9631.exp
* gdb.cp/printmethod.exp
* gdb.cp/psmang.exp
* gdb.cp/psymtab-parameter.exp
* gdb.cp/ptype-cv-cp.exp
* gdb.cp/ptype-flags.exp
* gdb.cp/re-set-overloaded.exp
* gdb.cp/ref-types.exp
* gdb.cp/rtti.exp
* gdb.cp/scope-err.exp
* gdb.cp/shadow.exp
* gdb.cp/smartp.exp
* gdb.cp/static-method.exp
* gdb.cp/static-print-quit.exp
* gdb.cp/temargs.exp
* gdb.cp/templates.exp
* gdb.cp/try_catch.exp
* gdb.cp/typedef-operator.exp
* gdb.cp/typeid.exp
* gdb.cp/userdef.exp
* gdb.cp/using-crash.exp
* gdb.cp/var-tag.exp
* gdb.cp/virtbase.exp
* gdb.cp/virtfunc.exp
* gdb.cp/virtfunc2.exp
* gdb.cp/vla-cxx.exp
* gdb.disasm/t01_mov.exp
* gdb.disasm/t02_mova.exp
* gdb.disasm/t03_add.exp
* gdb.disasm/t04_sub.exp
* gdb.disasm/t05_cmp.exp
* gdb.disasm/t06_ari2.exp
* gdb.disasm/t07_ari3.exp
* gdb.disasm/t08_or.exp
* gdb.disasm/t09_xor.exp
* gdb.disasm/t10_and.exp
* gdb.disasm/t11_logs.exp
* gdb.disasm/t12_bit.exp
* gdb.disasm/t13_otr.exp
* gdb.dlang/circular.exp
* gdb.dwarf2/arr-stride.exp
* gdb.dwarf2/arr-subrange.exp
* gdb.dwarf2/atomic-type.exp
* gdb.dwarf2/bad-regnum.exp
* gdb.dwarf2/bitfield-parent-optimized-out.exp
* gdb.dwarf2/callframecfa.exp
* gdb.dwarf2/clztest.exp
* gdb.dwarf2/corrupt.exp
* gdb.dwarf2/data-loc.exp
* gdb.dwarf2/dup-psym.exp
* gdb.dwarf2/dw2-anon-mptr.exp
* gdb.dwarf2/dw2-anonymous-func.exp
* gdb.dwarf2/dw2-bad-mips-linkage-name.exp
* gdb.dwarf2/dw2-bad-unresolved.exp
* gdb.dwarf2/dw2-basic.exp
* gdb.dwarf2/dw2-canonicalize-type.exp
* gdb.dwarf2/dw2-case-insensitive.exp
* gdb.dwarf2/dw2-common-block.exp
* gdb.dwarf2/dw2-compdir-oldgcc.exp
* gdb.dwarf2/dw2-compressed.exp
* gdb.dwarf2/dw2-const.exp
* gdb.dwarf2/dw2-cp-infcall-ref-static.exp
* gdb.dwarf2/dw2-cu-size.exp
* gdb.dwarf2/dw2-dup-frame.exp
* gdb.dwarf2/dw2-entry-value.exp
* gdb.dwarf2/dw2-icycle.exp
* gdb.dwarf2/dw2-ifort-parameter.exp
* gdb.dwarf2/dw2-inline-break.exp
* gdb.dwarf2/dw2-inline-param.exp
* gdb.dwarf2/dw2-intercu.exp
* gdb.dwarf2/dw2-intermix.exp
* gdb.dwarf2/dw2-lexical-block-bare.exp
* gdb.dwarf2/dw2-linkage-name-trust.exp
* gdb.dwarf2/dw2-minsym-in-cu.exp
* gdb.dwarf2/dw2-noloc.exp
* gdb.dwarf2/dw2-op-call.exp
* gdb.dwarf2/dw2-op-out-param.exp
* gdb.dwarf2/dw2-opt-structptr.exp
* gdb.dwarf2/dw2-param-error.exp
* gdb.dwarf2/dw2-producer.exp
* gdb.dwarf2/dw2-ranges-base.exp
* gdb.dwarf2/dw2-ref-missing-frame.exp
* gdb.dwarf2/dw2-reg-undefined.exp
* gdb.dwarf2/dw2-regno-invalid.exp
* gdb.dwarf2/dw2-restore.exp
* gdb.dwarf2/dw2-restrict.exp
* gdb.dwarf2/dw2-single-line-discriminators.exp
* gdb.dwarf2/dw2-strp.exp
* gdb.dwarf2/dw2-undefined-ret-addr.exp
* gdb.dwarf2/dw2-unresolved.exp
* gdb.dwarf2/dw2-var-zero-addr.exp
* gdb.dwarf2/dw4-sig-types.exp
* gdb.dwarf2/dwz.exp
* gdb.dwarf2/dynarr-ptr.exp
* gdb.dwarf2/enum-type.exp
* gdb.dwarf2/gdb-index.exp
* gdb.dwarf2/implptr-64bit.exp
* gdb.dwarf2/implptr-optimized-out.exp
* gdb.dwarf2/implptr.exp
* gdb.dwarf2/implref-array.exp
* gdb.dwarf2/implref-const.exp
* gdb.dwarf2/implref-global.exp
* gdb.dwarf2/implref-struct.exp
* gdb.dwarf2/mac-fileno.exp
* gdb.dwarf2/main-subprogram.exp
* gdb.dwarf2/member-ptr-forwardref.exp
* gdb.dwarf2/method-ptr.exp
* gdb.dwarf2/missing-sig-type.exp
* gdb.dwarf2/nonvar-access.exp
* gdb.dwarf2/opaque-type-lookup.exp
* gdb.dwarf2/pieces-optimized-out.exp
* gdb.dwarf2/pieces.exp
* gdb.dwarf2/pr10770.exp
* gdb.dwarf2/pr13961.exp
* gdb.dwarf2/staticvirtual.exp
* gdb.dwarf2/subrange.exp
* gdb.dwarf2/symtab-producer.exp
* gdb.dwarf2/trace-crash.exp
* gdb.dwarf2/typeddwarf.exp
* gdb.dwarf2/valop.exp
* gdb.dwarf2/watch-notconst.exp
* gdb.fortran/array-element.exp
* gdb.fortran/charset.exp
* gdb.fortran/common-block.exp
* gdb.fortran/complex.exp
* gdb.fortran/derived-type-function.exp
* gdb.fortran/derived-type.exp
* gdb.fortran/logical.exp
* gdb.fortran/module.exp
* gdb.fortran/multi-dim.exp
* gdb.fortran/nested-funcs.exp
* gdb.fortran/print-formatted.exp
* gdb.fortran/subarray.exp
* gdb.fortran/vla-alloc-assoc.exp
* gdb.fortran/vla-datatypes.exp
* gdb.fortran/vla-history.exp
* gdb.fortran/vla-ptr-info.exp
* gdb.fortran/vla-ptype-sub.exp
* gdb.fortran/vla-ptype.exp
* gdb.fortran/vla-sizeof.exp
* gdb.fortran/vla-type.exp
* gdb.fortran/vla-value-sub-arbitrary.exp
* gdb.fortran/vla-value-sub-finish.exp
* gdb.fortran/vla-value-sub.exp
* gdb.fortran/vla-value.exp
* gdb.fortran/whatis_type.exp
* gdb.go/chan.exp
* gdb.go/handcall.exp
* gdb.go/hello.exp
* gdb.go/integers.exp
* gdb.go/methods.exp
* gdb.go/package.exp
* gdb.go/strings.exp
* gdb.go/types.exp
* gdb.go/unsafe.exp
* gdb.guile/scm-arch.exp
* gdb.guile/scm-block.exp
* gdb.guile/scm-breakpoint.exp
* gdb.guile/scm-cmd.exp
* gdb.guile/scm-disasm.exp
* gdb.guile/scm-equal.exp
* gdb.guile/scm-frame-args.exp
* gdb.guile/scm-frame-inline.exp
* gdb.guile/scm-frame.exp
* gdb.guile/scm-iterator.exp
* gdb.guile/scm-math.exp
* gdb.guile/scm-objfile.exp
* gdb.guile/scm-ports.exp
* gdb.guile/scm-symbol.exp
* gdb.guile/scm-symtab.exp
* gdb.guile/scm-value-cc.exp
* gdb.guile/types-module.exp
* gdb.linespec/break-ask.exp
* gdb.linespec/cpexplicit.exp
* gdb.linespec/explicit.exp
* gdb.linespec/keywords.exp
* gdb.linespec/linespec.exp
* gdb.linespec/ls-dollar.exp
* gdb.linespec/ls-errs.exp
* gdb.linespec/skip-two.exp
* gdb.linespec/thread.exp
* gdb.mi/mi-async.exp
* gdb.mi/mi-basics.exp
* gdb.mi/mi-break.exp
* gdb.mi/mi-catch-load.exp
* gdb.mi/mi-cli.exp
* gdb.mi/mi-cmd-param-changed.exp
* gdb.mi/mi-console.exp
* gdb.mi/mi-detach.exp
* gdb.mi/mi-disassemble.exp
* gdb.mi/mi-eval.exp
* gdb.mi/mi-file-transfer.exp
* gdb.mi/mi-file.exp
* gdb.mi/mi-fill-memory.exp
* gdb.mi/mi-inheritance-syntax-error.exp
* gdb.mi/mi-linespec-err-cp.exp
* gdb.mi/mi-logging.exp
* gdb.mi/mi-memory-changed.exp
* gdb.mi/mi-read-memory.exp
* gdb.mi/mi-record-changed.exp
* gdb.mi/mi-reg-undefined.exp
* gdb.mi/mi-regs.exp
* gdb.mi/mi-return.exp
* gdb.mi/mi-reverse.exp
* gdb.mi/mi-simplerun.exp
* gdb.mi/mi-solib.exp
* gdb.mi/mi-stack.exp
* gdb.mi/mi-stepi.exp
* gdb.mi/mi-syn-frame.exp
* gdb.mi/mi-until.exp
* gdb.mi/mi-var-block.exp
* gdb.mi/mi-var-child.exp
* gdb.mi/mi-var-cmd.exp
* gdb.mi/mi-var-cp.exp
* gdb.mi/mi-var-display.exp
* gdb.mi/mi-var-invalidate.exp
* gdb.mi/mi-var-list-children-invalid-grandchild.exp
* gdb.mi/mi-vla-fortran.exp
* gdb.mi/mi-watch.exp
* gdb.mi/mi2-var-child.exp
* gdb.mi/user-selected-context-sync.exp
* gdb.modula2/unbounded-array.exp
* gdb.multi/dummy-frame-restore.exp
* gdb.multi/multi-arch-exec.exp
* gdb.multi/multi-arch.exp
* gdb.multi/tids.exp
* gdb.multi/watchpoint-multi.exp
* gdb.opencl/callfuncs.exp
* gdb.opencl/convs_casts.exp
* gdb.opencl/datatypes.exp
* gdb.opencl/operators.exp
* gdb.opencl/vec_comps.exp
* gdb.opt/clobbered-registers-O2.exp
* gdb.opt/inline-break.exp
* gdb.opt/inline-bt.exp
* gdb.opt/inline-cmds.exp
* gdb.opt/inline-locals.exp
* gdb.pascal/case-insensitive-symbols.exp
* gdb.pascal/floats.exp
* gdb.pascal/gdb11492.exp
* gdb.python/lib-types.exp
* gdb.python/py-arch.exp
* gdb.python/py-as-string.exp
* gdb.python/py-bad-printers.exp
* gdb.python/py-block.exp
* gdb.python/py-breakpoint-create-fail.exp
* gdb.python/py-breakpoint.exp
* gdb.python/py-caller-is.exp
* gdb.python/py-cmd.exp
* gdb.python/py-explore-cc.exp
* gdb.python/py-explore.exp
* gdb.python/py-finish-breakpoint.exp
* gdb.python/py-finish-breakpoint2.exp
* gdb.python/py-frame-args.exp
* gdb.python/py-frame-inline.exp
* gdb.python/py-frame.exp
* gdb.python/py-framefilter-mi.exp
* gdb.python/py-infthread.exp
* gdb.python/py-lazy-string.exp
* gdb.python/py-linetable.exp
* gdb.python/py-mi-events.exp
* gdb.python/py-mi-objfile.exp
* gdb.python/py-mi.exp
* gdb.python/py-objfile.exp
* gdb.python/py-pp-integral.exp
* gdb.python/py-pp-maint.exp
* gdb.python/py-pp-re-notag.exp
* gdb.python/py-pp-registration.exp
* gdb.python/py-recurse-unwind.exp
* gdb.python/py-strfns.exp
* gdb.python/py-symbol.exp
* gdb.python/py-symtab.exp
* gdb.python/py-sync-interp.exp
* gdb.python/py-typeprint.exp
* gdb.python/py-unwind-maint.exp
* gdb.python/py-unwind.exp
* gdb.python/py-value-cc.exp
* gdb.python/py-xmethods.exp
* gdb.reverse/amd64-tailcall-reverse.exp
* gdb.reverse/break-precsave.exp
* gdb.reverse/break-reverse.exp
* gdb.reverse/consecutive-precsave.exp
* gdb.reverse/consecutive-reverse.exp
* gdb.reverse/finish-precsave.exp
* gdb.reverse/finish-reverse-bkpt.exp
* gdb.reverse/finish-reverse.exp
* gdb.reverse/fstatat-reverse.exp
* gdb.reverse/getresuid-reverse.exp
* gdb.reverse/i386-precsave.exp
* gdb.reverse/i386-reverse.exp
* gdb.reverse/i386-sse-reverse.exp
* gdb.reverse/i387-env-reverse.exp
* gdb.reverse/i387-stack-reverse.exp
* gdb.reverse/insn-reverse.exp
* gdb.reverse/machinestate-precsave.exp
* gdb.reverse/machinestate.exp
* gdb.reverse/next-reverse-bkpt-over-sr.exp
* gdb.reverse/pipe-reverse.exp
* gdb.reverse/readv-reverse.exp
* gdb.reverse/recvmsg-reverse.exp
* gdb.reverse/rerun-prec.exp
* gdb.reverse/s390-mvcle.exp
* gdb.reverse/step-precsave.exp
* gdb.reverse/step-reverse.exp
* gdb.reverse/time-reverse.exp
* gdb.reverse/until-precsave.exp
* gdb.reverse/until-reverse.exp
* gdb.reverse/waitpid-reverse.exp
* gdb.reverse/watch-precsave.exp
* gdb.reverse/watch-reverse.exp
* gdb.rust/generics.exp
* gdb.rust/methods.exp
* gdb.rust/modules.exp
* gdb.rust/simple.exp
* gdb.server/connect-with-no-symbol-file.exp
* gdb.server/ext-attach.exp
* gdb.server/ext-restart.exp
* gdb.server/ext-wrapper.exp
* gdb.server/file-transfer.exp
* gdb.server/server-exec-info.exp
* gdb.server/server-kill.exp
* gdb.server/server-mon.exp
* gdb.server/wrapper.exp
* gdb.stabs/exclfwd.exp
* gdb.stabs/gdb11479.exp
* gdb.threads/clone-new-thread-event.exp
* gdb.threads/corethreads.exp
* gdb.threads/current-lwp-dead.exp
* gdb.threads/dlopen-libpthread.exp
* gdb.threads/gcore-thread.exp
* gdb.threads/sigstep-threads.exp
* gdb.threads/watchpoint-fork.exp
* gdb.trace/actions-changed.exp
* gdb.trace/backtrace.exp
* gdb.trace/change-loc.exp
* gdb.trace/circ.exp
* gdb.trace/collection.exp
* gdb.trace/disconnected-tracing.exp
* gdb.trace/ftrace.exp
* gdb.trace/mi-trace-frame-collected.exp
* gdb.trace/mi-trace-unavailable.exp
* gdb.trace/mi-traceframe-changed.exp
* gdb.trace/mi-tsv-changed.exp
* gdb.trace/no-attach-trace.exp
* gdb.trace/passc-dyn.exp
* gdb.trace/qtro.exp
* gdb.trace/range-stepping.exp
* gdb.trace/read-memory.exp
* gdb.trace/save-trace.exp
* gdb.trace/signal.exp
* gdb.trace/status-stop.exp
* gdb.trace/tfile.exp
* gdb.trace/trace-break.exp
* gdb.trace/trace-buffer-size.exp
* gdb.trace/trace-condition.exp
* gdb.trace/tracefile-pseudo-reg.exp
* gdb.trace/tstatus.exp
* gdb.trace/unavailable.exp
* gdb.trace/while-dyn.exp
* gdb.trace/while-stepping.exp
|
|
A test recently added to gdb.opt/inline-cmds.exp fails for
arm-none-eabi targets because -O2 leads to instructions to be
reordered widely.
I guess it might have made sense years ago to enable optimization in
these tests, but I fail to see the need for that nowadays.
Using -O0 while relying on __attribute__((always_inline)), which is
already used in the tests [1] [2], avoids this sort of trouble, while
still exercising the inlining-related use cases that are the focus of
these tests.
I think that nowadays we can safely assume that all compilers we care
about support __attribute__((always_inline)) or similar.
[1] - Except one spot that missed it.
[2] - Note that the .exp files make sure the frames that should have
been inlined are indeed inlined, with "info frame".
gdb/testsuite/ChangeLog:
2016-07-19 Pedro Alves <palves@redhat.com>
* gdb.opt/inline-break.exp: Remove optimize=-O2.
* gdb.opt/inline-bt.exp: Likewise.
* gdb.opt/inline-cmds.exp: Remove optimize=-O2 and add
additional_flags=-Winline.
* gdb.opt/inline-locals.exp: Likewise.
* gdb.opt/inline-markers.c (ATTR): Define.
(inlined_fn): Use it.
|
|
gdb/ChangeLog:
Update year range in copyright notice of all files.
|
|
gdb/ChangeLog:
Update year range in copyright notice of all files.
|
|
This PR is about an assertion failure in GDB that can be triggered by
setting "backtrace limit" to a value that causes GDB to stop unwinding
after an inline frame. In this case, an assertion in
inline_frame_this_id will trigger:
/* We need a valid frame ID, so we need to be based on a valid
frame. (...). */
gdb_assert (frame_id_p (*this_id));
Looking at the function:
static void
inline_frame_this_id (struct frame_info *this_frame,
void **this_cache,
struct frame_id *this_id)
{
struct symbol *func;
/* In order to have a stable frame ID for a given inline function,
we must get the stack / special addresses from the underlying
real frame's this_id method. So we must call get_prev_frame.
Because we are inlined into some function, there must be previous
frames, so this is safe - as long as we're careful not to
create any cycles. */
*this_id = get_frame_id (get_prev_frame (this_frame));
we see we're computing the frame id for the inline frame. If this is
an inline frame, which is a virtual frame constructed based on debug
info, on top of a real stack frame, we should _always_ be able to find
where the frame was inlined into, as that ultimately just means
peeling off the virtual frames on top of the real stack frame. If
there ultimately was no prev (real) stack frame, then we wouldn't have
been able to construct the inline frame either, by design. That's
what the assertion catches.
So we have an inline frame, we should _always_ be able to compute its
ID, even if that means bypassing the user backtrace limits to get at
the real stack frame's info. The problem is that inline_frame_id
calls get_prev_frame, and that takes user backtrace limits into
account. Code that wants to bypass the limits calls get_prev_frame_1
instead.
Note how get_prev_frame_1 already skips all checks for inline frames:
/* If we are unwinding from an inline frame, all of the below tests
were already performed when we unwound from the next non-inline
frame. We must skip them, since we can not get THIS_FRAME's ID
until we have unwound all the way down to the previous non-inline
frame. */
if (get_frame_type (this_frame) == INLINE_FRAME)
return get_prev_frame_if_no_cycle (this_frame);
And note how the related frame_unwind_caller_id function also uses
get_prev_frame_1:
struct frame_id
frame_unwind_caller_id (struct frame_info *next_frame)
{
struct frame_info *this_frame;
/* Use get_prev_frame_1, and not get_prev_frame. The latter will truncate
the frame chain, leading to this function unintentionally
returning a null_frame_id (e.g., when a caller requests the frame
ID of "main()"s caller. */
next_frame = skip_artificial_frames (next_frame);
this_frame = get_prev_frame_1 (next_frame);
if (this_frame)
return get_frame_id (skip_artificial_frames (this_frame));
else
return null_frame_id;
}
get_prev_frame_1 is currently static in frame.c. As a _1 suffix is
not a good name for an extern function, I've renamed it.
Tested on x86-64 Fedora 17.
gdb/
2014-04-18 Pedro alves <palves@redhat.com>
Tom Tromey <tromey@redhat.com>
PR backtrace/15558
* frame.c (get_prev_frame_1): Rename to ...
(get_prev_frame_always): ... this, and make extern. Adjust.
(skip_artificial_frames): Use get_prev_frame_always.
(frame_unwind_caller_id, frame_pop, get_prev_frame)
(get_frame_unwind_stop_reason): Adjust to rename.
* frame.h (get_prev_frame_always): Declare.
* inline-frame.c: Include frame.h.
(inline_frame_this_id): Use get_prev_frame_always.
gdb/testsuite/
2014-04-18 Tom Tromey <palves@redhat.com>
Pedro alves <tromey@redhat.com>
PR backtrace/15558
* gdb.opt/inline-bt.exp: Test backtracing from an inline function
with a backtrace limit.
* gdb.python/py-frame-inline.exp: Test running to an inline
function with a backtrace limit, and printing the newest frame.
* gdb.python/py-frame-inline.c (main): Call f.
|
|
|
|
Two modifications:
1. The addition of 2013 to the copyright year range for every file;
2. The use of a single year range, instead of potentially multiple
year ranges, as approved by the FSF.
|
|
prepare_for_testing.
* gdb.opt/inline-break.exp: Use standard_testfile,
prepare_for_testing.
* gdb.opt/inline-bt.exp: Use standard_testfile,
prepare_for_testing.
* gdb.opt/inline-cmds.exp: Use standard_testfile,
prepare_for_testing.
* gdb.opt/inline-locals.exp: Use standard_testfile,
prepare_for_testing.
|
|
(build_executable): Update.
(get_compiler_info): Remove 'binfile' argument.
* gdb.ada/arrayidx.exp: Update.
* gdb.ada/null_array.exp: Update.
* gdb.arch/altivec-abi.exp: Update.
* gdb.arch/altivec-regs.exp: Update.
* gdb.arch/amd64-byte.exp: Update.
* gdb.arch/amd64-dword.exp: Update.
* gdb.arch/amd64-word.exp: Update.
* gdb.arch/i386-avx.exp: Update.
* gdb.arch/i386-byte.exp: Update.
* gdb.arch/i386-sse.exp: Update.
* gdb.arch/i386-word.exp: Update.
* gdb.arch/ppc-dfp.exp: Update.
* gdb.arch/ppc-fp.exp: Update.
* gdb.arch/vsx-regs.exp: Update.
* gdb.base/all-bin.exp: Update.
* gdb.base/annota1.exp: Update.
* gdb.base/async.exp: Update.
* gdb.base/attach.exp: Update.
* gdb.base/break-interp.exp: Update.
* gdb.base/call-ar-st.exp: Update.
* gdb.base/call-rt-st.exp: Update.
* gdb.base/call-sc.exp: Update.
* gdb.base/callfuncs.exp: Update.
* gdb.base/catch-load.exp: Update.
* gdb.base/completion.exp: Update.
* gdb.base/complex.exp: Update.
* gdb.base/condbreak.exp: Update.
* gdb.base/consecutive.exp: Update.
* gdb.base/constvars.exp: Update.
* gdb.base/corefile.exp: Update.
* gdb.base/eval-skip.exp: Update.
* gdb.base/expand-psymtabs.exp: Update.
* gdb.base/exprs.exp: Update.
* gdb.base/fileio.exp: Update.
* gdb.base/fixsection.exp: Update.
* gdb.base/funcargs.exp: Update.
* gdb.base/gdb11530.exp: Update.
* gdb.base/gdb1555.exp: Update.
* gdb.base/gnu-ifunc.exp: Update.
* gdb.base/gnu_vector.exp: Update.
* gdb.base/info-macros.exp: Update.
* gdb.base/jit-simple.exp: Update.
* gdb.base/jit-so.exp: Update.
* gdb.base/jit.exp: Update.
* gdb.base/langs.exp: Update.
* gdb.base/list.exp: Update.
* gdb.base/logical.exp: Update.
* gdb.base/long_long.exp: Update.
* gdb.base/longjmp.exp: Update.
* gdb.base/macscp.exp: Update.
* gdb.base/mips_pro.exp: Update.
* gdb.base/miscexprs.exp: Update.
* gdb.base/morestack.exp: Update.
* gdb.base/nodebug.exp: Update.
* gdb.base/opaque.exp: Update.
* gdb.base/pc-fp.exp: Update.
* gdb.base/pending.exp: Update.
* gdb.base/permissions.exp: Update.
* gdb.base/pointers.exp: Update.
* gdb.base/prelink.exp: Update.
* gdb.base/printcmds.exp: Update.
* gdb.base/psymtab.exp: Update.
* gdb.base/ptype.exp: Update.
* gdb.base/relational.exp: Update.
* gdb.base/scope.exp: Update.
* gdb.base/setvar.exp: Update.
* gdb.base/shlib-call.exp: Update.
* gdb.base/shreloc.exp: Update.
* gdb.base/signals.exp: Update.
* gdb.base/sizeof.exp: Update.
* gdb.base/so-impl-ld.exp: Update.
* gdb.base/so-indr-cl.exp: Update.
* gdb.base/solib-disc.exp: Update.
* gdb.base/solib-display.exp: Update.
* gdb.base/solib-nodir.exp: Update.
* gdb.base/solib-overlap.exp: Update.
* gdb.base/solib-symbol.exp: Update.
* gdb.base/solib-weak.exp: Update.
* gdb.base/solib.exp: Update.
* gdb.base/store.exp: Update.
* gdb.base/structs.exp: Update.
* gdb.base/structs2.exp: Update.
* gdb.base/type-opaque.exp: Update.
* gdb.base/unload.exp: Update.
* gdb.base/varargs.exp: Update.
* gdb.base/volatile.exp: Update.
* gdb.base/watch_thread_num.exp: Update.
* gdb.base/watchpoint-solib.exp: Update.
* gdb.base/watchpoint.exp: Update.
* gdb.base/watchpoints.exp: Update.
* gdb.base/whatis.exp: Update.
* gdb.cell/arch.exp: Update.
* gdb.cell/break.exp: Update.
* gdb.cell/bt.exp: Update.
* gdb.cell/core.exp: Update.
* gdb.cell/data.exp: Update.
* gdb.cell/ea-cache.exp: Update.
* gdb.cell/f-regs.exp: Update.
* gdb.cell/fork.exp: Update.
* gdb.cell/gcore.exp: Update.
* gdb.cell/mem-access.exp: Update.
* gdb.cell/ptype.exp: Update.
* gdb.cell/registers.exp: Update.
* gdb.cell/sizeof.exp: Update.
* gdb.cell/solib-symbol.exp: Update.
* gdb.cell/solib.exp: Update.
* gdb.cp/ambiguous.exp: Update.
* gdb.cp/breakpoint.exp: Update.
* gdb.cp/bs15503.exp: Update.
* gdb.cp/casts.exp: Update.
* gdb.cp/class2.exp: Update.
* gdb.cp/cpexprs.exp: Update.
* gdb.cp/cplusfuncs.exp: Update.
* gdb.cp/ctti.exp: Update.
* gdb.cp/dispcxx.exp: Update.
* gdb.cp/gdb1355.exp: Update.
* gdb.cp/gdb2384.exp: Update.
* gdb.cp/gdb2495.exp: Update.
* gdb.cp/infcall-dlopen.exp: Update.
* gdb.cp/local.exp: Update.
* gdb.cp/m-data.exp: Update.
* gdb.cp/m-static.exp: Update.
* gdb.cp/mb-ctor.exp: Update.
* gdb.cp/mb-inline.exp: Update.
* gdb.cp/mb-templates.exp: Update.
* gdb.cp/member-ptr.exp: Update.
* gdb.cp/method.exp: Update.
* gdb.cp/namespace.exp: Update.
* gdb.cp/nextoverthrow.exp: Update.
* gdb.cp/nsdecl.exp: Update.
* gdb.cp/nsrecurs.exp: Update.
* gdb.cp/nsstress.exp: Update.
* gdb.cp/nsusing.exp: Update.
* gdb.cp/pr-1023.exp: Update.
* gdb.cp/pr-1210.exp: Update.
* gdb.cp/pr-574.exp: Update.
* gdb.cp/pr9631.exp: Update.
* gdb.cp/printmethod.exp: Update.
* gdb.cp/psmang.exp: Update.
* gdb.cp/re-set-overloaded.exp: Update.
* gdb.cp/rtti.exp: Update.
* gdb.cp/shadow.exp: Update.
* gdb.cp/templates.exp: Update.
* gdb.cp/try_catch.exp: Update.
* gdb.dwarf2/dw2-ranges.exp: Update.
* gdb.dwarf2/pr10770.exp: Update.
* gdb.fortran/library-module.exp: Update.
* gdb.hp/gdb.aCC/optimize.exp: Update.
* gdb.hp/gdb.aCC/watch-cmd.exp: Update.
* gdb.hp/gdb.base-hp/callfwmall.exp: Update.
* gdb.hp/gdb.base-hp/hwwatchbus.exp: Update.
* gdb.hp/gdb.base-hp/pxdb.exp: Update.
* gdb.hp/gdb.base-hp/sized-enum.exp: Update.
* gdb.hp/gdb.base-hp/so-thresh.exp: Update.
* gdb.hp/gdb.compat/xdb1.exp: Update.
* gdb.hp/gdb.compat/xdb2.exp: Update.
* gdb.hp/gdb.compat/xdb3.exp: Update.
* gdb.hp/gdb.defects/bs14602.exp: Update.
* gdb.hp/gdb.defects/solib-d.exp: Update.
* gdb.hp/gdb.objdbg/objdbg01.exp: Update.
* gdb.hp/gdb.objdbg/objdbg02.exp: Update.
* gdb.hp/gdb.objdbg/objdbg03.exp: Update.
* gdb.hp/gdb.objdbg/objdbg04.exp: Update.
* gdb.mi/gdb792.exp: Update.
* gdb.mi/mi-pending.exp: Update.
* gdb.mi/mi-solib.exp: Update.
* gdb.mi/mi-var-cp.exp: Update.
* gdb.opt/clobbered-registers-O2.exp: Update.
* gdb.opt/inline-bt.exp: Update.
* gdb.opt/inline-cmds.exp: Update.
* gdb.opt/inline-locals.exp: Update.
* gdb.python/py-events.exp: Update.
* gdb.python/py-finish-breakpoint.exp: Update.
* gdb.python/py-type.exp: Update.
* gdb.reverse/solib-precsave.exp: Update.
* gdb.reverse/solib-reverse.exp: Update.
* gdb.server/solib-list.exp: Update.
* gdb.stabs/weird.exp: Update.
* gdb.threads/attach-into-signal.exp: Update.
* gdb.threads/attach-stopped.exp: Update.
* gdb.threads/tls-shared.exp: Update.
* gdb.trace/change-loc.exp: Update.
* gdb.trace/strace.exp: Update.
|
|
gdb/ChangeLog:
Copyright year update in most files of the GDB Project.
|
|
|
|
(func1): Use it.
(func2): Likewise.
(func3): Likewise.
(outer_inline1): Likewise.
(outer_inline2): Likewise.
* gdb.opt/inline-bt.c (ATTR): New define.
(func1): Use it.
(func2): Likewise.
* gdb.opt/inline-locals.c (ATTR): New define.
(func1): Use it.
(func2): Likewise.
|
|
Automatic update by copyright.sh.
|
|
* NEWS: Document inlined function support.
* Makefile.in (SFILES): Add inline-frame.c.
(COMMON_OBS): Add inline-frame.o.
* block.c (contained_in): Rewrite to use lexical nesting.
(block_linkage_function): Skip inlined function blocks.
(block_inlined_p): New.
* block.h (struct block): Update comment.
(block_inlined_p): New prototype.
* blockframe.c (get_frame_block): Handle inlined functions.
(get_frame_function): Do not use block_linkage_function.
(block_innermost_frame): Use get_frame_block and contained_in.
* breakpoint.c (watchpoint_check): Remove extra reinit_frame_cache.
Skip over inlined functions. Simplify epilogue check.
(bpstat_check_breakpoint_conditions): Use get_stack_frame_id.
Update comments.
(set_momentary_breakpoint): Only accept non-inlined frames.
(watch_command_1): Use frame_unwind_caller_pc and
frame_unwind_caller_id instead of get_prev_frame.
(until_break_command): Likewise. Use get_stack_frame_id.
* buildsym.c (end_symtab): Set SYMBOL_SYMTAB for block functions.
* dwarf2loc.c (dwarf_expr_frame_base): Use block_linkage_function.
* dwarf2read.c (process_die): Handle DW_TAG_inlined_subroutine.
(read_func_scope, new_symbol): Likewise. Handle arguments specially
for inlined functions without call site information.
(inherit_abstract_dies): Allow tag mismatch for inlined subroutines.
(die_specification): Treat DW_AT_abstract_origin as a specification.
(read_type_die): Handle DW_TAG_inlined_subroutine.
* frame-unwind.c (frame_unwind_init): Add inline_frame_unwind.
* frame.c (fprint_frame_id): Print inline depth.
(fprint_frame_type): Handle INLINE_FRAME and SENTINEL_FRAME.
(skip_inlined_frames, get_stack_frame_id): New.
(frame_unwind_caller_id): Use skip_inlined_frames.
(frame_id_inlined_p): New.
(frame_id_eq): Make the logic match the comments. Add inline_depth
check.
(frame_id_inner): Handle inlined functions.
(frame_unwind_pc): New function, copied from frame_unwind_caller_pc.
(frame_unwind_caller_pc): Use skip_inlined_frames and frame_unwind_pc.
(get_prev_frame_1): Check for inline frames. Split out frame
allocation to get_prev_frame_raw.
(get_prev_frame_raw): New function.
(get_prev_frame): Handle inline frames.
(get_frame_pc): Use frame_unwind_pc.
(get_frame_address_in_block): Skip inlined frames on both sides.
(pc_notcurrent): Delete.
(find_frame_sal): Rewrite to handle inline call sites. Use
get_frame_address_in_block.
(deprecated_update_frame_pc_hack): Make static.
* frame.h: Update comments.
(struct frame_id): Add inline_depth.
(enum frame_type): Add INLINE_FRAME.
(frame_id_inlined_p, get_stack_frame_id): New prototypes.
* gdbthread.h (struct thread_info): Add step_stack_frame_id field.
* infcmd.c (set_step_frame): New function.
(step_once): Use set_step_frame. Handle inlined functions.
(until_next_command): Use set_step_frame.
(finish_backward), finish_forward): Use get_stack_frame_id.
(finish_command): Support inlined functions.
* inferior.h (set_step_info): New prototype.
* infrun.c (RESUME_ALL): Use minus_one_ptid.
(clear_proceed_status): Clear step_stack_frame_id.
(init_wait_for_inferior): Call clear_inline_frame_state.
(init_execution_control_state): Make static.
(set_step_info): New function.
(init_thread_stepping_state): Do not set the symtab or line here.
(stepped_in_from): New function.
(handle_inferior_event): Handle inlined functions. Use set_step_info.
(insert_step_resume_breakpoint_at_frame): Use get_stack_frame_id.
(struct inferior_status): Add step_stack_frame_id.
(save_inferior_status, restore_inferior_status): Save and restore
step_stack_frame_id.
* inline-frame.c, inline-frame.h: New files.
* minsyms.c (prim_record_minimal_symbol_and_info): Use XCALLOC.
* regcache.c (regcache_write_pc): Call reinit_frame_cache.
* s390-tdep.c (s390_prologue_frame_unwind_cache): Handle INLINE_FRAME.
* stack.c (frame_show_address): New.
(print_frame_info, print_frame): Use it.
(find_frame_funname): Use get_frame_function. Handle inlined blocks.
(frame_info): Mark inlined functions.
(backtrace_command_1): Use get_current_user_frame.
(print_frame_local_vars, print_frame_label_vars): Update comments.
(return_command): Refuse inlined functions.
* symtab.c (lookup_symbol_aux_local): Stop at inlined function
boundaries.
(find_function_start_sal): Avoid inlined functions.
(completion_list_add_fields): New function.
(default_make_symbol_completion_list): Use it. Use block_static_block
and block_global_block. Check for inlined functions.
(skip_prologue_using_sal): Avoid line number comparison across
inlining.
* symtab.h (struct symbol): Add is_inlined.
(SYMBOL_INLINED): New.
* target.c (target_resume): Call clear_inline_frame_state.
* valops.c (value_of_variable): Check block_inlined_p.
gdb/doc/
* gdb.texinfo (Debugging Optimized Code): New chapter.
(Compiling for Debugging): Reference it. Move some
text to the new section.
gdb/testsuite/
* gdb.base/break.exp: Add an XFAIL for gcc/36748.
* gdb.cp/annota2.exp: Accept frames-invalid in more places.
* gdb.opt/Makefile.in (EXECUTABLES): Update.
* gdb.opt/clobbered-registers-O2.exp: Update to GPL v3.
* gdb.opt/inline-bt.c, gdb.opt/inline-bt.exp,
gdb.opt/inline-cmds.c, gdb.opt/inline-cmds.exp,
gdb.opt/inline-locals.c, gdb.opt/inline-locals.exp,
gdb.opt/inline-markers.c: New files.
* lib/gdb.exp (skip_inline_frame_tests): New function.
(skip_inline_var_tests): New function.
|