Rpcs3: WITH_GDB fails to build

Created on 11 May 2019  路  5Comments  路  Source: RPCS3/rpcs3

Regressed by #5244 (e.g., on_task) and by #5749 (e.g., cr_pack).

$ cmake -GNinja -DWITH_GDB=on /path/to/rpcs3
$ ninja
[...]
Utilities/GDBDebugServer.cpp:357:36: error: no member named 'cr_pack' in 'ppu_thread'
                return u32_to_padded_hex(thread->cr_pack());
                                         ~~~~~~  ^
Utilities/GDBDebugServer.cpp:386:11: error: no member named 'cr_unpack' in 'ppu_thread'
                thread->cr_unpack(hex_to_u32(value));
                ~~~~~~  ^
Utilities/GDBDebugServer.cpp:736:22: error: out-of-line definition of 'on_task' does not match any declaration in 'GDBDebugServer'
void GDBDebugServer::on_task()
                     ^~~~~~~
Utilities/GDBDebugServer.cpp:811:22: error: out-of-line definition of 'on_exit' does not match any declaration in 'GDBDebugServer'
void GDBDebugServer::on_exit()
                     ^~~~~~~
Utilities/GDBDebugServer.cpp:822:29: error: out-of-line definition of 'get_name' does not match any declaration in 'GDBDebugServer'
std::string GDBDebugServer::get_name() const
                            ^~~~~~~~
Utilities/GDBDebugServer.cpp:827:22: error: out-of-line definition of 'on_stop' does not match any declaration in 'GDBDebugServer'
void GDBDebugServer::on_stop()
                     ^~~~~~~
Utilities/GDBDebugServer.cpp:831:8: error: no member named 'notify' in 'GDBDebugServer'
        this->notify();
        ~~~~  ^
Utilities/GDBDebugServer.cpp:832:2: error: use of undeclared identifier 'old_thread'; did you mean 'pad_thread'?
        old_thread::on_stop();
        ^~~~~~~~~~
        pad_thread
rpcs3/Emu/System.h:197:38: note: 'pad_thread' declared here
        std::function<std::shared_ptr<class pad_thread>()> get_pad_handler;
                                            ^
Utilities/GDBDebugServer.cpp:832:2: error: incomplete type 'pad_thread' named in nested name specifier
        old_thread::on_stop();
        ^~~~~~~~~~~~
rpcs3/Emu/System.h:197:38: note: forward declaration of 'pad_thread'
        std::function<std::shared_ptr<class pad_thread>()> get_pad_handler;
                                            ^
Utilities/GDBDebugServer.cpp:841:2: error: use of undeclared identifier 'notify'
        notify();
        ^
10 errors generated.
rpcs3/Emu/System.cpp:1543:30: error: no member named 'on_stop' in 'GDBDebugServer'
        fxm::get<GDBDebugServer>()->on_stop();
        ~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
1 error generated.
Linux

All 5 comments

I had plans to enable it by default with some refactoring

It still fails here.

Without it, I can't get debug symbols, as CMAKE_BUILD_TYPE='Debug' isn't enough. :(

Was planning to try and get a backtrace for https://github.com/RPCS3/rpcs3/issues/5986...

I had plans to enable it by default with some refactoring

@Nekotekina, do you have a rough timeline when that might be? I know you're busy, just asking.

Well, GDB is now always enabled, but untested.

GDB is enabled by default since #6729, so the compilation errors are no longer there. This issue can be closed.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

altiereslima picture altiereslima  路  3Comments

Birch-san picture Birch-san  路  3Comments

legend800 picture legend800  路  3Comments

Nezarn picture Nezarn  路  3Comments

elad335 picture elad335  路  3Comments