summaryrefslogtreecommitdiff
path: root/dwarfdump2/README
diff options
context:
space:
mode:
Diffstat (limited to 'dwarfdump2/README')
-rw-r--r--dwarfdump2/README86
1 files changed, 86 insertions, 0 deletions
diff --git a/dwarfdump2/README b/dwarfdump2/README
new file mode 100644
index 0000000..b9470b3
--- /dev/null
+++ b/dwarfdump2/README
@@ -0,0 +1,86 @@
+Dwarfdump2 is a C++ version of dwarfdump. It's intended to
+have improved features and better performance and be easier
+to understand than dwarfdump, but the printed output is intended
+to be the same as dwarfdump (aside from the new features and
+improvements).
+
+If this does not work for you, please let me know.
+
+To build dwarfdump, first build libdwarf in the neighboring
+directory then type
+ ./configure
+ make
+
+Installation is a bit primitive.
+ sudo make install
+may or may not work.
+Some or all of the following might be required on Unix or Linux or MacOS:
+ sudo mkdir -p /usr/local/share/man/man1/
+ sudo mkdir -p /usr/local/lib
+ sudo mkdir -p /usr/local/bin
+Then retry the 'sudo make install' and (if necessary) try
+ sudo chmod a+x /usr/local/bin/dwarfdump
+ sudo chmod a+r /usr/local/share/man/man1/dwarfdump.1
+ sudo chmod a+r /usr/local/lib/dwarfdump.conf
+You don't really need the dwarfdump.1 man page,
+but you might as well have it. If the man page is not visible
+with 'man dwarfdump' try 'man manpath' for hints.
+
+If you don't need others using dwarfdump on your computer,
+just
+ cp dwarfdump $HOME/bin/dwarfdump
+(by convention many people put personal executables in $HOME/bin
+and fix up $PATH to refer there) which suffices as 'installation'.
+Also
+ cp dwarfdump.conf $HOME
+
+To use dwarf or libdwarf, you may want to install dwarf.h
+and libdwarf.h somewhere convenient.
+You can just copy those two headers to /usr/local/include by hand
+(or anywhere, really, that you have permission to copy to)
+(you may need to use -I/usr/local/include on compile lines
+to reference them there, but see below on configure and make).
+
+Notice that dwarf_names.cc and dwarf_names.h are supplied by
+the release though the Makefile can and may rebuild them.
+Some users find it difficult to get a reliable awk(1) program,
+so for them these prebuilt versions may be useful.
+
+If your headers or libelf/libdwarf are not in the expected places,
+use the make command line to add flags and include directories.
+For example
+ ./configure
+ PREINCS="-I /usr/local/include" POSTINCS="-I /home/x/include" make
+PREINCS content is inserted before CFLAGS as make(1) is running.
+POSTINCS content is added after the CFLAGS value.
+
+To set LDFLAGS,
+do so at configure time, for example:
+ ./configure LDFLAGS="-L /some/dir"
+And/or use PRELIBS and/or POSTLIBS at 'make' time similar to the use
+of PREINCS and POSTINCS.
+
+If the libdwarf directory
+has both libdwarf.so and libdwarf.a, the libdwarf.so
+will be picked up and
+ "./tag_tree_build: error while loading shared libraries:
+ libdwarf.so: cannot open shared object file:
+ No such file or directory"
+will probably result.
+Either: remove libdwarf.so and rebuild or set
+the environment variable LD_LIBRARY_PATH to the directory
+containing the .so or use LDFLAGS to set rpath (see just below).
+It is perhaps simpler to ensure that the libdwarf directory
+only has an archive, not a shared-library.
+But sometimes one wants a shared library.
+In that case
+one can set ld's -rpath on the gcc command line like this:
+ LDFLAGS="-Wl,-rpath=/some/path/libdir"
+so the shared library can be found at run time automatically.
+
+The same problem may arise with libelf, and the same approach
+will solve the problem.
+
+
+
+David Anderson. davea42 at earthlink dot net.