forked from TheCrazyT/edb-debugger
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
83 lines (57 loc) · 2.71 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
edb is available under the GPL 2 license, see the COPYING for details.
Edit for Ubuntu 13.10:
=========================
sudo apt-get install libboost1.54-dev libqt5xmlpatterns5-dev qtbase5-dev qt5-default
qmake
make
./edb
=========================
NOTE: This README now only covers the most essential documentation, for more
complete documentation see the html files in the doc/ directory.
Compiling
---------
Compiling edb is generally quite simple. edb currently depends on the
following packages:
Qt >= 4.5
boost >= 1.35 (headers only)
Many distributions already have packages that satisify these.
Once you have QT and boost installed, it is as simple as
$ qmake
$ make
This will build the debugger along with all plugins I have written. On certain
systems your qmake may be named slightly differently, I've noticed that the
Fedora Core rpms name it qmake-qt4.
If you are planning on doing a make install, you likely want to specify the
default plugin path, here's how you would do that.
$ qmake -makefile DEFAULT_PLUGIN_PATH="/usr/lib/edb/"
$ make
Installing
----------
Basic installation is simple, you may run
$ make install
Or if you would like to specify where things should go, you probably want to
use something like this
make INSTALL_ROOT=/usr/ install
In which case the plugins will be installed in /usr/lib/edb and the binaries
will be installed in /usr/bin/. Finally, if you are doing a make install, you
probably want to specify a default plugin path, this is done during the qmake
process.
Generating Symbols
------------------
In order to have edb take advantage of certain features (such as the Heap
analyzer plugin), it will need some symbol maps to work with. The easiest way
to create these is to run edb with the --symbols flag, here's an example:
$ ./edb --symbols /lib/libc.so.6 > symbols/libc.so.6.map
The name of the symbol file IS IMPORTANT, a quick and dirty way to get all
symbols from most existing libraries on your system would be like this:
$ for i in $(ls /lib/*.so* /usr/lib/*.so*); do ./edb --symbols $i > symbols/$(basename $i).map; done
This will take a moment, but not that long and you will have symbols based on
all libraries on your system. Note that the edb_make_symbolmap script will work
on regular binaries as well, not just libraries. So if you are debugging an
application, you may want to generate its symbols as well. Eventually, I will
build a "Regenerate Symbols" feature into edb (a plugin perhaps?), but for now,
the script will have to do.
NOTE: as of version 0.8.5 the symbol map format has changed slightly, you will
need to regenerate your map files.
Also, don't forget to set the symbols directory in the options dialog to the
directory which you placed the map files!