Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FreeBSD: error: only virtual member functions can be marked 'override' #831

Open
Martinfx opened this issue Dec 17, 2022 · 4 comments
Open

Comments

@Martinfx
Copy link
Contributor

Martinfx commented Dec 17, 2022

Hi,
i have issue with build on FreeBSD 13.1

FreeBSD clang version 13.0.0 (git@github.com:llvm/llvm-project.git llvmorg-13.0.0-0-gd7b669b3a303)
Target: x86_64-unknown-freebsd13.1
Thread model: posix
InstalledDir: /usr/bin

edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:41:35: error: only virtual member functions can be marked 'override'
        std::size_t pointer_size() const override;
                                         ^~~~~~~~
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:42:27: error: only virtual member functions can be marked 'override'
        size_t page_size() const override;
                                 ^~~~~~~~
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:43:40: error: only virtual member functions can be marked 'override'
        bool has_extension(quint64 ext) const override;
                                              ^~~~~~~~
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:44:59: error: only virtual member functions can be marked 'override'
        std::shared_ptr<IDebugEvent> wait_debug_event(int msecs) override;
                                                                 ^~~~~~~~
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:48:106: error: non-virtual member function marked 'override' hides virtual member function
        Status open(const QString &path, const QString &cwd, const QList<QByteArray> &args, const QString &tty) override;
                                                                                                                ^
edb-debugger/include/IDebugger.h:88:17: note: hidden overloaded virtual function 'IDebugger::open' declared here: different number of parameters (5 vs 4)
        virtual Status open(const QString &path, const QString &cwd, const QList<QByteArray> &args, const QString &input, const QString &output) = 0;
                       ^
In file included from edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/mocs_compilation.cpp:2:
In file included from edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/moc_DebuggerCore.cpp:10:
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:50:66: error: only virtual member functions can be marked 'override'
        void set_ignored_exceptions(const QList<qlonglong> &exceptions) override;
                                                                        ^~~~~~~~
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:58:46: error: only virtual member functions can be marked 'override'
        edb::pid_t parent_pid(edb::pid_t pid) const override;
                                                    ^~~~~~~~
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:61:47: error: only virtual member functions can be marked 'override'
        std::unique_ptr<IState> create_state() const override;
                                                     ^~~~~~~~
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:64:27: error: only virtual member functions can be marked 'override'
        quint64 cpu_type() const override;
                                 ^~~~~~~~
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:67:74: error: only virtual member functions can be marked 'override'
        QMap<edb::pid_t, std::shared_ptr<IProcess>> enumerate_processes() const override;
                                                                                ^~~~~~~~
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:70:32: error: only virtual member functions can be marked 'override'
        QString stack_pointer() const override;
                                      ^~~~~~~~
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:71:32: error: only virtual member functions can be marked 'override'
        QString frame_pointer() const override;
                                      ^~~~~~~~
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:72:38: error: only virtual member functions can be marked 'override'
        QString instruction_pointer() const override;
                                            ^~~~~~~~
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/../../unix/freebsd/DebuggerCore.h:73:32: error: only virtual member functions can be marked 'override'
        QString flag_register() const override;
                                      ^~~~~~~~
In file included from edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/mocs_compilation.cpp:2:
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/moc_DebuggerCore.cpp:123:1: warning: no previous prototype for function 'qt_plugin_query_metadata' [-Wmissing-prototypes]
QT_MOC_EXPORT_PLUGIN(DebuggerCorePlugin::DebuggerCore, DebuggerCore)
^
/usr/local/include/qt5/QtCore/qplugin.h:198:25: note: expanded from macro 'QT_MOC_EXPORT_PLUGIN'
            const char *qt_plugin_query_metadata() \
                        ^
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/moc_DebuggerCore.cpp:123:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
/usr/local/include/qt5/QtCore/qplugin.h:198:19: note: expanded from macro 'QT_MOC_EXPORT_PLUGIN'
            const char *qt_plugin_query_metadata() \
                  ^
In file included from edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/mocs_compilation.cpp:2:
edb-debugger/plugins/DebuggerCore/DebuggerCore_autogen/4DGRYHTLPZ/moc_DebuggerCore.cpp:123:22: error: allocating an object of abstract class type 'DebuggerCorePlugin::DebuggerCore'
QT_MOC_EXPORT_PLUGIN(DebuggerCorePlugin::DebuggerCore, DebuggerCore)
                     ^
edb-debugger/include/IDebugger.h:63:22: note: unimplemented pure virtual method 'pageSize' in 'DebuggerCore'
        virtual std::size_t pageSize() const                  = 0;
                            ^
edb-debugger/include/IDebugger.h:64:22: note: unimplemented pure virtual method 'pointerSize' in 'DebuggerCore'
        virtual std::size_t pointerSize() const               = 0;
                            ^
edb-debugger/include/IDebugger.h:65:19: note: unimplemented pure virtual method 'cpuType' in 'DebuggerCore'
        virtual uint64_t cpuType() const                      = 0;
                         ^
edb-debugger/include/IDebugger.h:66:18: note: unimplemented pure virtual method 'cpuMode' in 'DebuggerCore'
        virtual CpuMode cpuMode() const                       = 0;
                        ^
edb-debugger/include/IDebugger.h:67:15: note: unimplemented pure virtual method 'hasExtension' in 'DebuggerCore'
        virtual bool hasExtension(uint64_t ext) const         = 0;
                     ^
edb-debugger/include/IDebugger.h:71:18: note: unimplemented pure virtual method 'nopFillByte' in 'DebuggerCore'
        virtual uint8_t nopFillByte() const                   = 0;
                        ^
edb-debugger/include/IDebugger.h:75:18: note: unimplemented pure virtual method 'stackPointer' in 'DebuggerCore'
        virtual QString stackPointer() const       = 0;
                        ^
edb-debugger/include/IDebugger.h:76:18: note: unimplemented pure virtual method 'framePointer' in 'DebuggerCore'
        virtual QString framePointer() const       = 0;
                        ^
edb-debugger/include/IDebugger.h:77:18: note: unimplemented pure virtual method 'instructionPointer' in 'DebuggerCore'
        virtual QString instructionPointer() const = 0;
                        ^
edb-debugger/include/IDebugger.h:78:18: note: unimplemented pure virtual method 'flagRegister' in 'DebuggerCore'
        virtual QString flagRegister() const       = 0;
                        ^
edb-debugger/include/IDebugger.h:82:21: note: unimplemented pure virtual method 'parentPid' in 'DebuggerCore'
        virtual edb::pid_t parentPid(edb::pid_t pid) const                             = 0;
                           ^
edb-debugger/include/IDebugger.h:83:54: note: unimplemented pure virtual method 'enumerateProcesses' in 'DebuggerCore'
        virtual QMap<edb::pid_t, std::shared_ptr<IProcess>> enumerateProcesses() const = 0;
                                                            ^
edb-debugger/include/IDebugger.h:88:17: note: unimplemented pure virtual method 'open' in 'DebuggerCore'
        virtual Status open(const QString &path, const QString &cwd, const QList<QByteArray> &args, const QString &input, const QString &output) = 0;
                       ^
edb-debugger/include/IDebugger.h:89:39: note: unimplemented pure virtual method 'waitDebugEvent' in 'DebuggerCore'
        virtual std::shared_ptr<IDebugEvent> waitDebugEvent(std::chrono::milliseconds msecs)                                                     = 0;
                                             ^
edb-debugger/include/IDebugger.h:106:15: note: unimplemented pure virtual method 'setIgnoredExceptions' in 'DebuggerCore'
        virtual void setIgnoredExceptions(const QList<qlonglong> &exceptions) = 0;
                     ^
edb-debugger/include/IDebugger.h:109:34: note: unimplemented pure virtual method 'createState' in 'DebuggerCore'
        virtual std::unique_ptr<IState> createState() const = 0;

@eteran
Copy link
Owner

eteran commented Dec 17, 2022

Unfortunately, the non-linux ports are wofully out of date from the rest of the code base and currently have no expectation of compiling.

I do plan to eventually get non-linux ports working again, but it just hasn't been a priority in a bit. But perhaps you've motivated me to spin up a FreeBSD VM again and see what we can do ;-)

@Martinfx
Copy link
Contributor Author

Martinfx commented Jan 1, 2023

good idea, i can help with test

@arrowd
Copy link

arrowd commented Mar 7, 2023

I took a quick look on the FreeBSD plugin and it is extremely out of sync with the rest of the code base. Would you accept a PR that at least makes the plugin compile by stubbing out actual implementations?

@eteran
Copy link
Owner

eteran commented Mar 7, 2023

Absolutely! any help on this front is welcome :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants