eteran / edb-debugger

edb is a cross-platform AArch32/x86/x86-64 debugger.
GNU General Public License v2.0
2.68k stars 322 forks source link

DebuggerCore plugin PlatformThread build error #802

Open BradAndreBurns opened 3 years ago

BradAndreBurns commented 3 years ago

This is the first time I'm trying (and building) edb and I'm having build issues. I'm wondering if it's me or...

Here's some info:

pi@raspberrypi:~ $ neofetch
  `.::///+:/-.        --///+//-:``    pi@raspberrypi 
 `+oooooooooooo:   `+oooooooooooo:    -------------- 
  /oooo++//ooooo:  ooooo+//+ooooo.    OS: Raspbian GNU/Linux 10 (buster) armv7l 
  `+ooooooo:-:oo-  +o+::/ooooooo:     Host: Raspberry Pi 4 Model B Rev 1.2 
   `:oooooooo+``    `.oooooooo+-      Kernel: 5.4.79-v7l+ 
     `:++ooo/.        :+ooo+/.`       Uptime: 2 hours, 6 mins 
        ...`  `.----.` ``..           Packages: 2218 (dpkg) 
     .::::-``:::::::::.`-:::-`        Shell: bash 5.0.3 
    -:::-`   .:::::::-`  `-:::-       Resolution: 1280x800 
   `::.  `.--.`  `` `.---.``.::`      DE: LXDE 
       .::::::::`  -::::::::` `       WM: Openbox 
 .::` .:::::::::- `::::::::::``::.    Theme: Clearlooks [GTK2/3] 
-:::` ::::::::::.  ::::::::::.`:::-   Icons: gnome [GTK2/3] 
::::  -::::::::.   `-::::::::  ::::   Terminal: lxterminal 
-::-   .-:::-.``....``.-::-.   -::-   Terminal Font: Monospace 9 
 .. ``       .::::::::.     `..`..    CPU: BCM2711 (4) @ 1.500GHz 
   -:::-`   -::::::::::`  .:::::`     Memory: 372MiB / 3827MiB 
   :::::::` -::::::::::` :::::::.
   .:::::::  -::::::::. ::::::::                              
    `-:::::`   ..--.`   ::::::.
      `...`  `...--..`  `...`
            .::::::::::
             `.-::::-`
pi@raspberrypi:~/Development/edb-debugger/build $ uname -a
Linux raspberrypi 5.4.79-v7l+ #1373 SMP Mon Nov 23 13:27:40 GMT 2020 armv7l GNU/Linux

pi@raspberrypi:~/Development/edb-debugger/build $ uname -m
armv7l
pi@raspberrypi:~/Development/edb-debugger/build $ grep CS_AC_WRITE /usr/local/include/capstone/capstone.h
grep: /usr/local/include/capstone/capstone.h: No such file or directory

pi@raspberrypi:~/Development/edb-debugger/build $ grep CS_AC_WRITE /usr/include/capstone/capstone.h
Note: Shows nothing

Build Output (after cmake completed):

pi@raspberrypi:~/Development/edb-debugger/build $ make
[  1%] Automatic MOC and UIC for target edb
[  1%] Built target edb_autogen
[ 30%] Built target edb
[ 30%] Automatic MOC and UIC for target ValueTest
[ 30%] Built target ValueTest_autogen
[ 32%] Built target ValueTest
[ 33%] Automatic MOC and UIC for target DebuggerCore
[ 33%] Built target DebuggerCore_autogen
[ 34%] Building CXX object plugins/DebuggerCore/CMakeFiles/DebuggerCore.dir/unix/linux/arch/arm-generic/PlatformThread.cpp.o
In file included from /home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp:28:
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformState.h: In member function ‘virtual Register DebuggerCorePlugin::PlatformState::archRegister(uint64_t, std::size_t) const’:
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformState.h:72:33: warning: unused parameter ‘type’ [-Wunused-parameter]
  Register archRegister(uint64_t type, size_t n) const override {
                        ~~~~~~~~~^~~~
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformState.h:72:46: warning: unused parameter ‘n’ [-Wunused-parameter]
  Register archRegister(uint64_t type, size_t n) const override {
                                       ~~~~~~~^
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp: In member function ‘bool DebuggerCorePlugin::PlatformThread::fillStateFromPrStatus(DebuggerCorePlugin::PlatformState*)’:
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp:81:59: warning: unused parameter ‘state’ [-Wunused-parameter]
 bool PlatformThread::fillStateFromPrStatus(PlatformState *state) {
                                            ~~~~~~~~~~~~~~~^~~~~
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp: In member function ‘long unsigned int DebuggerCorePlugin::PlatformThread::getDebugRegister(std::size_t)’:
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp:167:60: warning: unused parameter ‘n’ [-Wunused-parameter]
 unsigned long PlatformThread::getDebugRegister(std::size_t n) {
                                                ~~~~~~~~~~~~^
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp: At global scope:

/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp:177:6: error: no declaration matches ‘long int DebuggerCorePlugin::PlatformThread::setDebugRegister(std::size_t, long int)’
 long PlatformThread::setDebugRegister(std::size_t n, long value) {
      ^~~~~~~~~~~~~~
In file included from /home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp:21:

/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/PlatformThread.h:74:7: note: candidate is: ‘long int DebuggerCorePlugin::PlatformThread::setDebugRegister(std::size_t, long unsigned int)’
  long setDebugRegister(std::size_t n, unsigned long value);
       ^~~~~~~~~~~~~~~~
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/PlatformThread.h:34:7: note: ‘class DebuggerCorePlugin::PlatformThread’ defined here
 class PlatformThread final : public IThread {
       ^~~~~~~~~~~~~~
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp: In member function ‘Status DebuggerCorePlugin::PlatformThread::doStep(edb::tid_t, long int)’:
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp:269:15: warning: comparison of integer expressions of different signedness: ‘int’ and ‘const unsigned int’ [-Wsign-compare]
      for (; i < opCount; ++i) {
             ~~^~~~~~~~~
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp:282:12: warning: comparison of integer expressions of different signedness: ‘int’ and ‘const unsigned int’ [-Wsign-compare]
      if (i == opCount)
          ~~^~~~~~~~~~
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp:338:13: warning: enumeration value ‘Unknown’ not handled in switch [-Wswitch]
      switch (targetMode) {
             ^
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp:338:13: warning: enumeration value ‘ARM64’ not handled in switch [-Wswitch]
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp: At global scope:

/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp:376:34: error: ‘Status DebuggerCorePlugin::PlatformThread::step’ is not a static data member of ‘class DebuggerCorePlugin::PlatformThread’
 Status PlatformThread::step(edb::EVENT_STATUS status) {
                                  ^~~~~~~~~~~~
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp:376:34: error: ‘EVENT_STATUS’ is not a member of ‘edb’
/home/pi/Development/edb-debugger/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp:376:55: error: expected ‘,’ or ‘;’ before ‘{’ token
 Status PlatformThread::step(edb::EVENT_STATUS status) {

                                                       ^
make[2]: *** [plugins/DebuggerCore/CMakeFiles/DebuggerCore.dir/build.make:232: plugins/DebuggerCore/CMakeFiles/DebuggerCore.dir/unix/linux/arch/arm-generic/PlatformThread.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:350: plugins/DebuggerCore/CMakeFiles/DebuggerCore.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

Any help is appreciated! ~ Brad

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/98607012-debuggercore-plugin-platformthread-build-error?utm_campaign=plugin&utm_content=tracker%2F14326212&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F14326212&utm_medium=issues&utm_source=github).
eteran commented 3 years ago

Hmm, it seems that some of the ARM stuff is slightly out of date :-(

I'll see what I can do to fix that.

BradAndreBurns commented 3 years ago

Thanks, eteran. 👍🏻

bogdanBDM commented 2 years ago

Any updates on this error/issue ? I can reproduce the error on my PI device. Thanks !

eteran commented 2 years ago

Appreciate the bump, I actually have access to an apple silicone MacBook now so it's a good time to revisit this.