Go to file
Caroline Tice 56d467f4ee gdb: handle relative paths to DWO files
DWARF allows .dwo file paths to be relative rather than absolute.

When they are relative, DWARF uses DW_AT_comp_dir to find the .dwo
file.  DW_AT_comp_dir can also be relative, making the entire search
patch for the .dwo file relative.

In this case, GDB currently searches relative to its current working
directory, i.e. the directory from which the debugger was launched,
but not relative to the directory containing the built binary.  This
cannot be right, as the compiler, when generating the relative paths,
knows where it's building the binary but can have no idea where the
debugger will be launched.

The correct thing is to add the directory containing the binary to the
search paths used for resolving relative locations of dwo files. That
is what this patch does.

gdb/ChangeLog:

	* dwarf2/read.c (try_open_dwop_file): Add path for the binary to
	the search paths used resolve relative location of .dwo file.

gdb/testsuite/ChangeLog:

	* gdb.dwarf2/fission-relative-dwo.c: New file.
	* gdb.dwarf2/fission-relative-dwo.exp: New file.
2021-04-07 11:41:50 +01:00
bfd Automatic date update in version.in 2021-04-07 00:00:15 +00:00
binutils Return symbol from symbol_at_address_func 2021-04-06 23:25:09 +09:30
config GCC_CET_HOST_FLAGS: Check if host supports multi-byte NOPs 2021-03-18 08:02:46 -07:00
contrib
cpu Use bool in opcodes 2021-03-31 10:49:23 +10:30
elfcpp Add DWARF 5 support in gold. 2021-03-19 13:55:35 -07:00
etc
gas Fix pr27217 testcase failure 2021-04-07 18:14:20 +09:30
gdb gdb: handle relative paths to DWO files 2021-04-07 11:41:50 +01:00
gdbserver Fix inverted logic bug 2021-03-30 09:23:11 -03:00
gdbsupport New memory-tag commands 2021-03-24 14:57:53 -03:00
gnulib gnulib: import gitlog-to-changelog 2021-03-24 19:35:40 -04:00
gold PR27625, powerpc64 gold __tls_get_addr calls 2021-03-30 13:38:41 +10:30
gprof C99 gprof configury 2021-04-05 15:27:02 +09:30
include Return symbol from symbol_at_address_func 2021-04-06 23:25:09 +09:30
intl
ld ld: warn about PE base relocations to sections above .reloc 2021-04-06 10:54:57 +02:00
libctf libctf: fix ELF-in-BFD checks in the presence of ASAN 2021-03-25 16:32:51 +00:00
libdecnumber
libiberty GCC_CET_HOST_FLAGS: Check if host supports multi-byte NOPs 2021-03-18 08:02:46 -07:00
opcodes Return symbol from symbol_at_address_func 2021-04-06 23:25:09 +09:30
readline
sim Adjust location of readline in sim/erc32 2021-04-05 06:53:35 -06:00
texinfo
zlib
.cvsignore
.gitattributes
.gitignore
ar-lib
ChangeLog
compile
config-ml.in
config.guess
config.rpath
config.sub
configure
configure.ac
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.LIBGLOSS
COPYING.NEWLIB
depcomp
djunpack.bat
install-sh
libtool.m4
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS
Makefile.def
Makefile.in
Makefile.tpl
makefile.vms
missing
mkdep
mkinstalldirs
move-if-change
multilib.am
README
README-maintainer-mode
setup.com
src-release.sh
symlink-tree
test-driver
ylwrap

		   README for GNU development tools

This directory contains various GNU compilers, assemblers, linkers, 
debuggers, etc., plus their support routines, definitions, and documentation.

If you are receiving this as part of a GDB release, see the file gdb/README.
If with a binutils release, see binutils/README;  if with a libg++ release,
see libg++/README, etc.  That'll give you info about this
package -- supported targets, how to use it, how to report bugs, etc.

It is now possible to automatically configure and build a variety of
tools with one command.  To build all of the tools contained herein,
run the ``configure'' script here, e.g.:

	./configure 
	make

To install them (by default in /usr/local/bin, /usr/local/lib, etc),
then do:
	make install

(If the configure script can't determine your type of computer, give it
the name as an argument, for instance ``./configure sun4''.  You can
use the script ``config.sub'' to test whether a name is recognized; if
it is, config.sub translates it to a triplet specifying CPU, vendor,
and OS.)

If you have more than one compiler on your system, it is often best to
explicitly set CC in the environment before running configure, and to
also set CC when running make.  For example (assuming sh/bash/ksh):

	CC=gcc ./configure
	make

A similar example using csh:

	setenv CC gcc
	./configure
	make

Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc.  See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.

REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.