| Author |
| Thread |
 |
|
MCD
Joined: 21 Aug 2004
Posts: 604
Location: Germany
|
Debuggers for Linux
I know that there are some debuggers for Linux, but I am searching for something that can compare to OllyDbg and works with the i386 architecture.
I just wanted to ask other Fasm forum members if he/she has good experience with such a Linux debugger, because I don't want to download 1000s of programs, testing them all and deleting 99,9% afterwards.
Also it should be noted that I'm quiet new to Linux, but I did lots of stuff in Windoze before.
My machine is some Debian derivate running on an AMD Athlon XP. So plain programs that don't need to be installed (like Olly) are as much welcome as .deb packages, as long as they aren't bloated like 10.000 files and 50MB. (like those crappy java stuff I needed to install quiet recently)
thanks to everyone in advance
_________________ MCD - the inevitable return of the Mad Computer Doggy
-||__/
.|+-~
.|| ||
|
26 Dec 2006, 06:56 |
|
RedGhost
Joined: 18 May 2005
Posts: 444
Location: BC, Canada
|
gdb which is comes with basically every distro can work like OllyDbg, just install one of the many GUIs for it.
_________________ redghost.ca
|
26 Dec 2006, 10:55 |
|
vid
Verbosity in development
Joined: 05 Sep 2003
Posts: 7108
Location: Slovakia
|
RedGhost: which gui do you suggest?
|
26 Dec 2006, 11:26 |
|
RedGhost
Joined: 18 May 2005
Posts: 444
Location: BC, Canada
|
ugh it's been so long, the two I remember using were "ddd" and "insight"
http://sources.redhat.com/insight/
http://www.gnu.org/software/ddd/
You will probably have to configure it to show assembly code instead of it trying to get debug symbols and show C or what have you. If I remember correctly one of them supports Intel syntax instead of fugly and illogical(opinion alert!) at&t syntax.
_________________ redghost.ca
|
26 Dec 2006, 14:17 |
|
MCD
Joined: 21 Aug 2004
Posts: 604
Location: Germany
|
I just found another good one, but watch out, they say it's pre-alpha and I'm not sure if it's unmaintained: http://lida.reverse-engineering.net/
EDIT: forget about it, it's just a completely unfinished/unmaintained project
|
07 Jan 2007, 11:51 |
|
stanks
Joined: 01 Dec 2003
Posts: 36
Location: Croatia
|
lida is disassembler not debugger
|
09 Jan 2007, 15:07 |
|
andreism
Joined: 10 Feb 2007
Posts: 9
Location: Russia, Moscow
|
|
10 Feb 2007, 14:00 |
|
MCD
Joined: 21 Aug 2004
Posts: 604
Location: Germany
|
thanks, but I couldn't compile it. Configure went fine but make reported something like "readline/readline.c" wasn't found, see this error log
($DEVEL_PATH is the path where I have extracted ALD)
MAKE wrote: |
|
Making all in doc
make[1]: Entering directory `$DEVEL_PATH/ald-0.1.7/doc'
make[1]: Für das Ziel »all« ist nichts zu tun.
make[1]: Leaving directory `$DEVEL_PATH/ald-0.1.7/doc'
Making all in libString
make[1]: Entering directory `$DEVEL_PATH/ald-0.1.7/libString'
Making all in source
make[2]: Entering directory `$DEVEL_PATH/ald-0.1.7/libString/source'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libString/source'
make[2]: Entering directory `$DEVEL_PATH/ald-0.1.7/libString'
make[2]: Für das Ziel »all-am« ist nichts zu tun.
make[2]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libString'
make[1]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libString'
Making all in libDebug
make[1]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDebug'
Making all in arch
make[2]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDebug/arch'
Making all in ix86
make[3]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDebug/arch/ix86'
Making all in source
make[4]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDebug/arch/ix86/source'
make[4]: Für das Ziel »all« ist nichts zu tun.
make[4]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDebug/arch/ix86/source'
make[4]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDebug/arch/ix86'
make[4]: Für das Ziel »all-am« ist nichts zu tun.
make[4]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDebug/arch/ix86'
make[3]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDebug/arch/ix86'
make[3]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDebug/arch'
make[3]: Für das Ziel »all-am« ist nichts zu tun.
make[3]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDebug/arch'
make[2]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDebug/arch'
Making all in source
make[2]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDebug/source'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDebug/source'
make[2]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDebug'
make[2]: Für das Ziel »all-am« ist nichts zu tun.
make[2]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDebug'
make[1]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDebug'
Making all in libDASM
make[1]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDASM'
Making all in arch
make[2]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDASM/arch'
Making all in ix86
make[3]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDASM/arch/ix86'
Making all in source
make[4]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDASM/arch/ix86/source'
make[4]: Für das Ziel »all« ist nichts zu tun.
make[4]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDASM/arch/ix86/source'
make[4]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDASM/arch/ix86'
make[4]: Für das Ziel »all-am« ist nichts zu tun.
make[4]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDASM/arch/ix86'
make[3]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDASM/arch/ix86'
make[3]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDASM/arch'
make[3]: Für das Ziel »all-am« ist nichts zu tun.
make[3]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDASM/arch'
make[2]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDASM/arch'
Making all in source
make[2]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDASM/source'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDASM/source'
make[2]: Entering directory `$DEVEL_PATH/ald-0.1.7/libDASM'
make[2]: Für das Ziel »all-am« ist nichts zu tun.
make[2]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDASM'
make[1]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libDASM'
Making all in libOFF
make[1]: Entering directory `$DEVEL_PATH/ald-0.1.7/libOFF'
Making all in source
make[2]: Entering directory `$DEVEL_PATH/ald-0.1.7/libOFF/source'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libOFF/source'
make[2]: Entering directory `$DEVEL_PATH/ald-0.1.7/libOFF'
make[2]: Für das Ziel »all-am« ist nichts zu tun.
make[2]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libOFF'
make[1]: Leaving directory `$DEVEL_PATH/ald-0.1.7/libOFF'
Making all in source
make[1]: Entering directory `$DEVEL_PATH/ald-0.1.7/source'
if gcc -DHAVE_CONFIG_H -I. -I. -I../include -I../include -I../libDebug/include -I../libDASM/include -I../libOFF/include -I../libString/include -g -O2 -DNDEBUG -MT readln.o -MD -MP -MF ".deps/readln.Tpo" -c -o readln.o readln.c; \
then mv -f ".deps/readln.Tpo" ".deps/readln.Po"; else rm -f ".deps/readln.Tpo"; exit 1; fi
readln.c:25:31: error: readline/readline.h: Datei oder Verzeichnis nicht gefunden
readln.c:30:30: error: readline/history.h: Datei oder Verzeichnis nicht gefunden
make[1]: *** [readln.o] Fehler 1
make[1]: Leaving directory `$DEVEL_PATH/ald-0.1.7/source'
make: *** [all-recursive] Fehler 1
|
|
I guess this is a kind of bug of this program, cause it was mentioned in the BUGS-file in the main program directory:
BUGS wrote: |
|
B: check readline/readline.h and readline/history.h
V: 0.1.7
D: ald will still try to compile readln.c if these are missing
|
|
but this doesn't apply to me.
Now, who can help, cause I'm relatively new to Linux C-programming.
_________________ MCD - the inevitable return of the Mad Computer Doggy
-||__/
.|+-~
.|| ||
|
11 Feb 2007, 13:33 |
|
vid
Verbosity in development
Joined: 05 Sep 2003
Posts: 7108
Location: Slovakia
|
for linux C programming, you can get great TurboVision-based IDE rhide. It can use GDB to debug, i wonder if it can debug binaries without sources. Someone could try it.
|
11 Feb 2007, 16:55 |
|
rugxulo
Joined: 09 Aug 2005
Posts: 1936
Location: Usono (aka, USA)
|
A quick Google search points to GNU Readline. As far as RHIDE, I suggest you (also?) try the latest/last DJGPP build, if you can.
|
11 Feb 2007, 21:05 |
|
vid
Verbosity in development
Joined: 05 Sep 2003
Posts: 7108
Location: Slovakia
|
rugxulo: can it debug asm code without symbols with neat IDE?
|
11 Feb 2007, 21:36 |
|
rugxulo
Joined: 09 Aug 2005
Posts: 1936
Location: Usono (aka, USA)
|
vid, dunno, I don't use it, but I somewhat doubt it. Still, some people like it, so I'm just passing along a link. At worst, you waste a few hours on it, give up, and try something else. Try asking at comp.os.msdos.djgpp on Google Groups if you really want to know. They know everything (well, a lot anyways). 
|
11 Feb 2007, 21:40 |
|
MCD
Joined: 21 Aug 2004
Posts: 604
Location: Germany
|
so this ALD requires DJGPP, an plain GCC configure/make won't do the job?
|
12 Feb 2007, 00:04 |
|
TmX
Joined: 02 Mar 2006
Posts: 548
Location: Jakarta, Indonesia
|
ALD is a Linux program so it doesn't use DJGPP
|
12 Feb 2007, 05:27 |
|
arafel
Joined: 29 Aug 2006
Posts: 131
Location: Jerusalem, Israel
|
MCD,
"./configure --disable-readline"
|
13 Feb 2007, 15:09 |
|
rugxulo
Joined: 09 Aug 2005
Posts: 1936
Location: Usono (aka, USA)
|
I was only talking about the DJGPP port of RHIDE. Sorry for any confusion.
|
13 Feb 2007, 19:00 |
|
MCD
Joined: 21 Aug 2004
Posts: 604
Location: Germany
|
arafel wrote: |
|
MCD,
"./configure --disable-readline"
|
|
thanks for the hint, but that wasn't enough to make it work, I also had to change some code in the source/readln.c, which falsely included the ./readline/readline.c file, which isn't even present in the source tree. How can this be?
well, I finally managed to get a running version of ALD. I think it's quiet usable, much less overbloated than GDB and works fine, but only in theory, cause debugging programs without proper register/code/stack/data interaction is just an incredible pain.
So I though that I need a good UI on top of that, you have proposed RHIDE, but I would have to get DJGPP first. Another problem for that is that RHIDE isn't maintained anymore, so it probably lacks many newer features.
Another thought was to start an own GUI for ALD that would allow debugging processes more interactively (I would have called it ALDI - Assembly Language Debugger Interactive UI  ), but then I realized that ALD itself has some problems for me:
-support only up to MMX (no SSE etc)
-no way to change/fill in new instructions except getting machine code from fasm and C/P it to the ALD window and write it into memory with en(ter)
=> changing some few instructions has never been more complecated than this
-does ALD got some stack (top) dump/display feature? don't know. (using the regular memory dump command as stack dump is a bit fiddly)
-currently unmaintained
-written in C, berk, I don't like it
maybe there are more, I've especially not completely checked it against any kind of bugs.
I think that ALD is also unusable without a proper UI, so I think Linux really lacks of good interactive assembly level debuggers in general
_________________ MCD - the inevitable return of the Mad Computer Doggy
-||__/
.|+-~
.|| ||
|
13 Feb 2007, 23:09 |
|
vid
Verbosity in development
Joined: 05 Sep 2003
Posts: 7108
Location: Slovakia
|
MCD: you can also try GDBTUI, but still it sucks.
too bad we don't have 32bit FDBG with TurboVision IDE  (((
|
13 Feb 2007, 23:21 |
|
rugxulo
Joined: 09 Aug 2005
Posts: 1936
Location: Usono (aka, USA)
|
RHIDE can supposedly be built for other OSes too (e.g., Linux).
Quote: |
|
The original system, RHIDE was written for, is DJGPP. Because of many requests and the increasing popularity I made RHIDE also available for GNU/Linux. Support for CYGWIN is still unstable.
|
|
P.S. Check The Free Country for various debugging links (probably not helpful but oh well, that's all I know ...).
|
14 Feb 2007, 02:49 |
|
stanks
Joined: 01 Dec 2003
Posts: 36
Location: Croatia
|
|
14 Feb 2007, 06:55 |
|
|
|
Forum Rules:
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You cannot download files in this forum
|
|
|
|
|
|
Powered by phpBB © 2001-2005 phpBB Group.
|