Welcome to the new Woodmann RCE Messageboards Regroupment
Please be patient while the rest of the site is restored.

To all Members of the old RCE Forums:
In order to log in, it will be necessary to reset your forum login password ("I forgot my password") using the original email address you registered with. You will be sent an email with a link to reset your password for that member account.

The old vBulletin forum was converted to phpBB format, requiring the passwords to be reset. If this is a problem for some because of a forgotten email address, please feel free to re-register with a new username. We are happy to welcome old and new members back to the forums! Thanks.

All new accounts are manually activated before you can post. Any questions can be PM'ed to Kayaker.

EDB Linux Debugger 0.8.0 Release :)

RCE of Linux tools and programs.
FrankRizzo
Posts: 359
Joined: Sat Nov 27, 2004 7:43 pm
Contact:

Post by FrankRizzo »

Has anyone built this on FC9? I've jumped through herculean hoops, and still no go.
proxy
Member
Posts: 85
Joined: Tue Jun 13, 2006 3:59 pm
Contact:

Post by proxy »

Could you elaborate on the build issues and your environment? Are you using qmake-qt4 or qmake? Also, on some configurations, you need to run: qmake-qt4 QT_ARCH=i386.

In addition to this, Ubuntu seems to have included "--no-undefined" in its default LDFLAGS for QT. This is causing a problem for the plugin build. To resolve this, please add the following line to the unix section of plugins/plugins.pri: QMAKE_LFLAGS -= -Wl,--no-undefined.

Sorry for the build issues, I hope to have them resolved in 0.9.0 :) .

proxy
FrankRizzo
Posts: 359
Joined: Sat Nov 27, 2004 7:43 pm
Contact:

Post by FrankRizzo »

If I just untar it, and follow your directions(qmake, make), I get this:

/usr/lib/qt-3.3/bin/uic debuggerui.ui -o debuggerui.h
Session management error: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed
uic: File generated with too recent version of Qt Designer (4.0 vs. 3.3.8b)
make[1]: *** [debuggerui.h] Error 1

Obviously this means that the DEFAULT Qt is 3.3.8b, and not at least 4.0 which it seems to require. I've downloaded "qt-x11-opensource-src-4.3.4" and tried my best to install it in a way that made it happy, but to no avail.

Is there a standard (read EASY) way to install Qt 4?
proxy
Member
Posts: 85
Joined: Tue Jun 13, 2006 3:59 pm
Contact:

Post by proxy »

well the README (and my comment above) says this RIGHT AFTER the qmake; make instructions:

"On certain systems your qmake make be named slightly differently, I've noticed that the Fedora Core rpms name it qmake-qt4."

So basically, install qt4 and development packages, then run qmake-qt4 as the instructions indicate and you shouldn't have an issue. You may need to run "qmake-qt4 QT_ARCH=i386" depending on if FC9 has the buggy installation or not.

I did cover this in my initial response :-/

Thanks and good luck,
proxy
FrankRizzo
Posts: 359
Joined: Sat Nov 27, 2004 7:43 pm
Contact:

Post by FrankRizzo »

qmake-qt4 not found!

[[email protected] debugger]# updatedb
[[email protected] debugger]# locate qmake-qt4
[[email protected] debugger]#

So I tried to install it.

[[email protected] debugger]# yum install qmake-qt4
Loaded plugins: refresh-packagekit
Setting up Install Process
Parsing package install arguments
No package qmake-qt4 available.
Nothing to do
[[email protected] debugger]#
proxy
Member
Posts: 85
Joined: Tue Jun 13, 2006 3:59 pm
Contact:

Post by proxy »

"yum install qt4-devel"
FrankRizzo
Posts: 359
Joined: Sat Nov 27, 2004 7:43 pm
Contact:

Post by FrankRizzo »

Getting closer!

[[email protected] debugger]# qmake-qt4 QT_ARCH=i386
[[email protected] debugger]# make
cd src/ && /usr/bin/qmake-qt4 src.pro -unix QT_ARCH=i386 -o Makefile
cd src/ && make -f Makefile
make[1]: Entering directory `/home/chris/Downloads/debugger/src'
/usr/lib/qt4/bin/uic widgets/binarystring.ui -o ui_binarystring.h
/usr/lib/qt4/bin/uic debuggerui.ui -o ui_debuggerui.h
/usr/lib/qt4/bin/uic dialogattach.ui -o ui_dialogattach.h
/usr/lib/qt4/bin/uic dialogmemoryregions.ui -o ui_dialogmemoryregions.h
/usr/lib/qt4/bin/uic dialogoptions.ui -o ui_dialogoptions.h
/usr/lib/qt4/bin/uic dialoginputvalue.ui -o ui_dialoginputvalue.h
/usr/lib/qt4/bin/uic dialoginputbinarystring.ui -o ui_dialoginputbinarystring.h
g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I../include -Iwidgets -Iedisassm -Ios/unix -I../include/os/unix -Iarch/i386 -I../include/arch/i386 -I. -I. -o SymbolManager.o SymbolManager.cpp
g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I../include -Iwidgets -Iedisassm -Ios/unix -I../include/os/unix -Iarch/i386 -I../include/arch/i386 -I. -I. -o ByteShiftArray.o ByteShiftArray.cpp
g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I../include -Iwidgets -Iedisassm -Ios/unix -I../include/os/unix -Iarch/i386 -I../include/arch/i386 -I. -I. -o DialogInputBinaryString.o DialogInputBinaryString.cpp
g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I../include -Iwidgets -Iedisassm -Ios/unix -I../include/os/unix -Iarch/i386 -I../include/arch/i386 -I. -I. -o DialogOptions.o DialogOptions.cpp
g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I../include -Iwidgets -Iedisassm -Ios/unix -I../include/os/unix -Iarch/i386 -I../include/arch/i386 -I. -I. -o DialogInputValue.o DialogInputValue.cpp
g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I../include -Iwidgets -Iedisassm -Ios/unix -I../include/os/unix -Iarch/i386 -I../include/arch/i386 -I. -I. -o MD5.o MD5.cpp
MD5.h: In static member function \u2018static T MD5::rol(T, int) [with T = unsigned int]\u2019:
MD5.h:56: instantiated from \u2018static void MD5::doTransform(quint32&, quint32, quint32, quint32, quint32, quint32, quint32) [with quint32 (* Fun)(quint32, quint32, quint32) = MD5::F]\u2019
MD5.cpp:173: instantiated from here
MD5.h:50: warning: suggest parentheses around + or - inside shift
g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I../include -Iwidgets -Iedisassm -Ios/unix -I../include/os/unix -Iarch/i386 -I../include/arch/i386 -I. -I. -o Debugger.o Debugger.cpp
In file included from ByteStreamRegion.h:23,
from DebuggerMain.h:23,
from Debugger.cpp:30:
ByteStream.h:50: warning: type qualifiers ignored on function return type
Debugger.cpp: In function \u2018DebugEventHandlerInterface* edb::v1::setDebugEventHandler(DebugEventHandlerInterface*)\u2019:
Debugger.cpp:111: error: \u2018q_atomic_set_ptr\u2019 was not declared in this scope
make[1]: *** [Debugger.o] Error 1
proxy
Member
Posts: 85
Joined: Tue Jun 13, 2006 3:59 pm
Contact:

Post by proxy »

Ah, see that is a genuine bug. It has been fixed already in the development tree. The problem is that the atomic qt functions I used were not part of the public API (and in this case, they went away).

You can fix this by opening src/Debugger.cpp and changing the contents of two functions to be like this:

Code: Select all

DebugEventHandlerInterface *edb::v1::setDebugEventHandler(DebugEventHandlerInterface *p) {

	Q_CHECK_PTR(p);

	// TODO: add locks here, used to be atomic
	DebugEventHandlerInterface *const oldptr = g_DebugEventHandler;
	g_DebugEventHandler = p;
	return oldptr;
}

DebugEventHandlerInterface *edb::v1::debugEventHandler() {
	return g_DebugEventHandler;
}
I think this should resolve the issue for you.

proxy
FrankRizzo
Posts: 359
Joined: Sat Nov 27, 2004 7:43 pm
Contact:

Post by FrankRizzo »

g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I../include -Iwidgets -Iedisassm -Ios/unix -I../include/os/unix -Iarch/i386 -I../include/arch/i386 -I. -I. -o QDisassemblyView.o widgets/QDisassemblyView.cpp
widgets/QDisassemblyView.cpp: In member function \u2018int QDisassemblyView::addressLen() const\u2019:
widgets/QDisassemblyView.cpp:408: error: \u2018CHAR_BIT\u2019 was not declared in this scope
make[1]: *** [QDisassemblyView.o] Error 1
proxy
Member
Posts: 85
Joined: Tue Jun 13, 2006 3:59 pm
Contact:

Post by proxy »

heh, ok, yet another one that is fixed in the dev tree.

whenever it complains about CHAR_BIT, that means that the <climit> header is missing.

Just put "#include <climits>" at top of any files which complain about this. (I Think QDisassemblyView.cpp has the same issue).

hopefully, that's the last of the build issues. Unfortunately, FC isn't my default build environment, so I didn't catch these during the last release :-/

proxy
FrankRizzo
Posts: 359
Joined: Sat Nov 27, 2004 7:43 pm
Contact:

Post by FrankRizzo »

One more time!

g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I../include -Iwidgets -Iedisassm -Ios/unix -I../include/os/unix -Iarch/i386 -I../include/arch/i386 -I. -I. -o MemoryRegions.o os/unix/MemoryRegions.cpp
os/unix/MemoryRegions.cpp: In member function \u2018void MemoryRegions::Region::setPermissions(bool, bool, bool, edb::address_t)\u2019:
os/unix/MemoryRegions.cpp:355: error: \u2018memcpy\u2019 is not a member of \u2018std\u2019
os/unix/MemoryRegions.cpp:356: error: \u2018memcpy\u2019 is not a member of \u2018std\u2019
os/unix/MemoryRegions.cpp:357: error: \u2018memcpy\u2019 is not a member of \u2018std\u2019
os/unix/MemoryRegions.cpp:358: error: \u2018memcpy\u2019 is not a member of \u2018std\u2019
make[1]: *** [MemoryRegions.o] Error 1
proxy
Member
Posts: 85
Joined: Tue Jun 13, 2006 3:59 pm
Contact:

Post by proxy »

same story as last time, just "#include <cstring>" instead.

I hope this is the last one
FrankRizzo
Posts: 359
Joined: Sat Nov 27, 2004 7:43 pm
Contact:

Post by FrankRizzo »

Almost. I fixed a couple more instances of the missing cstring.

And I get this one:

[[email protected] debugger]# make
cd src/ && make -f Makefile
make[1]: Entering directory `/home/chris/Downloads/debugger/src'
g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I../include -Iwidgets -Iedisassm -Ios/unix -I../include/os/unix -Iarch/i386 -I../include/arch/i386 -I. -I. -o Instruction.o edisassm/Instruction.cpp
edisassm/Instruction.cpp: In function \u2018std::string& toupper(std::string&)\u2019:
edisassm/Instruction.cpp:1066: error: \u2018transform\u2019 is not a member of \u2018std\u2019
make[1]: *** [Instruction.o] Error 1
proxy
Member
Posts: 85
Joined: Tue Jun 13, 2006 3:59 pm
Contact:

Post by proxy »

try these:

#include <algorithm>
#include <functional>

rest assured that in 0.9.0 (will be released soon) all of these issues will be fixed (and tested on FC and Ubuntu for compatibility).

proxy
FrankRizzo
Posts: 359
Joined: Sat Nov 27, 2004 7:43 pm
Contact:

Post by FrankRizzo »

I was going to offer to tar up the version that finally compiles, and send it to you.

g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I../include -Iwidgets -Iedisassm -Ios/unix -I../include/os/unix -Iarch/i386 -I../include/arch/i386 -I. -I. -o ArchProcessor.o arch/i386/ArchProcessor.cpp
arch/i386/ArchProcessor.cpp: In member function \u2018void ArchProcessor::doFunctionParamterResolution(const QString&, int, QStringList&) const\u2019:
arch/i386/ArchProcessor.cpp:359: error: \u2018INT_MAX\u2019 was not declared in this scope
arch/i386/ArchProcessor.cpp: In member function \u2018void ArchProcessor::analyzeJumpTargets(const Instruction&, QStringList&) const\u2019:
arch/i386/ArchProcessor.cpp:728: warning: suggest parentheses around && within ||
make[1]: *** [ArchProcessor.o] Error 1
Locked