FreeBSD: error: only virtual member functions can be marked 'override'
Martinfx opened this issue · 4 comments
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;
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 ;-)
good idea, i can help with test
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?
Absolutely! any help on this front is welcome :-)