fix: 修复 Linux 的崩溃报告使用;

This commit is contained in:
寂静的羽夏 2025-02-12 23:13:09 +08:00
parent 6581349950
commit 55ae07fd58
8 changed files with 180 additions and 142 deletions

View File

@ -296,59 +296,60 @@
<context> <context>
<name>TestPlugin</name> <name>TestPlugin</name>
<message> <message>
<location filename="../testplugin.cpp" line="199"/> <location filename="../testplugin.cpp" line="208"/>
<source>Test</source> <source>Test</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../testplugin.cpp" line="211"/>
<location filename="../testplugin.cpp" line="220"/> <location filename="../testplugin.cpp" line="220"/>
<location filename="../testplugin.cpp" line="225"/> <location filename="../testplugin.cpp" line="229"/>
<location filename="../testplugin.cpp" line="306"/> <location filename="../testplugin.cpp" line="234"/>
<location filename="../testplugin.cpp" line="315"/>
<source>TestPlugin</source> <source>TestPlugin</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../testplugin.cpp" line="229"/> <location filename="../testplugin.cpp" line="238"/>
<source>Button - </source> <source>Button - </source>
<translation> - </translation> <translation> - </translation>
</message> </message>
<message> <message>
<location filename="../testplugin.cpp" line="233"/> <location filename="../testplugin.cpp" line="242"/>
<source>Click</source> <source>Click</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../testplugin.cpp" line="309"/> <location filename="../testplugin.cpp" line="318"/>
<source>A Test Plugin for WingHexExplorer2.</source> <source>A Test Plugin for WingHexExplorer2.</source>
<translation>2</translation> <translation>2</translation>
</message> </message>
<message> <message>
<location filename="../testplugin.cpp" line="347"/> <location filename="../testplugin.cpp" line="356"/>
<location filename="../testplugin.cpp" line="355"/>
<location filename="../testplugin.cpp" line="364"/> <location filename="../testplugin.cpp" line="364"/>
<location filename="../testplugin.cpp" line="385"/> <location filename="../testplugin.cpp" line="373"/>
<location filename="../testplugin.cpp" line="401"/> <location filename="../testplugin.cpp" line="394"/>
<location filename="../testplugin.cpp" line="408"/> <location filename="../testplugin.cpp" line="410"/>
<location filename="../testplugin.cpp" line="415"/> <location filename="../testplugin.cpp" line="417"/>
<location filename="../testplugin.cpp" line="422"/> <location filename="../testplugin.cpp" line="424"/>
<location filename="../testplugin.cpp" line="430"/> <location filename="../testplugin.cpp" line="431"/>
<location filename="../testplugin.cpp" line="461"/> <location filename="../testplugin.cpp" line="439"/>
<location filename="../testplugin.cpp" line="469"/> <location filename="../testplugin.cpp" line="470"/>
<location filename="../testplugin.cpp" line="477"/> <location filename="../testplugin.cpp" line="478"/>
<location filename="../testplugin.cpp" line="485"/> <location filename="../testplugin.cpp" line="486"/>
<location filename="../testplugin.cpp" line="494"/> <location filename="../testplugin.cpp" line="494"/>
<location filename="../testplugin.cpp" line="503"/>
<location filename="../testplugin.cpp" line="510"/>
<source>InvalidParamsCount</source> <source>InvalidParamsCount</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../testplugin.cpp" line="378"/> <location filename="../testplugin.cpp" line="387"/>
<location filename="../testplugin.cpp" line="394"/> <location filename="../testplugin.cpp" line="403"/>
<source>InvalidParam</source> <source>InvalidParam</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../testplugin.cpp" line="452"/> <location filename="../testplugin.cpp" line="461"/>
<source>AllocArrayFailed</source> <source>AllocArrayFailed</source>
<translation></translation> <translation></translation>
</message> </message>

View File

@ -166,6 +166,15 @@ TestPlugin::TestPlugin() : WingHex::IWingPlugin() {
info.ret = MetaType::Bool; info.ret = MetaType::Bool;
_scriptInfo.insert(QStringLiteral("pluginMetaTestEnabled"), info); _scriptInfo.insert(QStringLiteral("pluginMetaTestEnabled"), info);
} }
{
WingHex::IWingPlugin::ScriptFnInfo info;
info.fn = std::bind(
QOverload<const QVariantList &>::of(&TestPlugin::testCrash), this,
std::placeholders::_1);
info.ret = MetaType::Void;
_scriptInfo.insert(QStringLiteral("testCrash"), info);
}
} }
TestPlugin::~TestPlugin() { destoryTestShareMem(); } TestPlugin::~TestPlugin() { destoryTestShareMem(); }
@ -437,10 +446,10 @@ TestPlugin::colorTable(const QList<void *> &params) {
} }
auto invoked = auto invoked =
emit invokeService(QStringLiteral("WingAngelAPI"), "vector2AsArray", invokeService(QStringLiteral("WingAngelAPI"), "vector2AsArray",
WINGAPI_RETURN_ARG(void *, array), WINGAPI_RETURN_ARG(void *, array),
WINGAPI_ARG(MetaType, MetaType::Color), WINGAPI_ARG(MetaType, MetaType::Color),
WINGAPI_ARG(QVector<void *>, colors)); WINGAPI_ARG(QVector<void *>, colors));
if (invoked) { if (invoked) {
if (array) { if (array) {
qDeleteAll(colors); qDeleteAll(colors);
@ -496,6 +505,14 @@ QVariant TestPlugin::pluginMetaTestEnabled(const QVariantList &params) {
return pluginMetaTestEnabled(); return pluginMetaTestEnabled();
} }
QVariant TestPlugin::testCrash(const QVariantList &params) {
if (!params.isEmpty()) {
return getScriptCallError(-1, tr("InvalidParamsCount"));
}
testCrash();
return {};
}
void TestPlugin::test_a() { emit debug(__FUNCTION__); } void TestPlugin::test_a() { emit debug(__FUNCTION__); }
void TestPlugin::test_b(const QString &b) { void TestPlugin::test_b(const QString &b) {
@ -604,6 +621,15 @@ void TestPlugin::setPluginMetaTestEnabled(bool b) {
bool TestPlugin::pluginMetaTestEnabled() { return ENABLE_META; } bool TestPlugin::pluginMetaTestEnabled() { return ENABLE_META; }
void TestPlugin::testCrash() {
// if you want to reproduce nullptr deferenced,
// you can use this example. 'volatile' is important in release mode
// volatile int *a = nullptr;
// (*a)++;
abort();
}
QHash<QString, WingHex::IWingPlugin::ScriptFnInfo> QHash<QString, WingHex::IWingPlugin::ScriptFnInfo>
TestPlugin::registeredScriptFns() const { TestPlugin::registeredScriptFns() const {
return _scriptInfo; return _scriptInfo;

View File

@ -91,6 +91,8 @@ private:
QVariant setPluginMetaTestEnabled(const QVariantList &params); QVariant setPluginMetaTestEnabled(const QVariantList &params);
QVariant pluginMetaTestEnabled(const QVariantList &params); QVariant pluginMetaTestEnabled(const QVariantList &params);
QVariant testCrash(const QVariantList &params);
private: private:
void test_a(); void test_a();
void test_b(const QString &b); void test_b(const QString &b);
@ -110,6 +112,8 @@ private:
void setPluginMetaTestEnabled(bool b); void setPluginMetaTestEnabled(bool b);
bool pluginMetaTestEnabled(); bool pluginMetaTestEnabled();
void testCrash();
private: private:
QDialog *_tform = nullptr; QDialog *_tform = nullptr;
QMenu *_tmenu = nullptr; QMenu *_tmenu = nullptr;

View File

@ -332,67 +332,67 @@
<context> <context>
<name>EditorView</name> <name>EditorView</name>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="79"/> <location filename="../../src/control/editorview.cpp" line="78"/>
<source>Cut</source> <source>Cut</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="81"/> <location filename="../../src/control/editorview.cpp" line="80"/>
<source>CutHex</source> <source>CutHex</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="83"/> <location filename="../../src/control/editorview.cpp" line="82"/>
<source>Copy</source> <source>Copy</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="85"/> <location filename="../../src/control/editorview.cpp" line="84"/>
<source>CopyHex</source> <source>CopyHex</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="87"/> <location filename="../../src/control/editorview.cpp" line="86"/>
<source>Paste</source> <source>Paste</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="89"/> <location filename="../../src/control/editorview.cpp" line="88"/>
<source>PasteHex</source> <source>PasteHex</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="91"/> <location filename="../../src/control/editorview.cpp" line="90"/>
<source>Delete</source> <source>Delete</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="94"/> <location filename="../../src/control/editorview.cpp" line="93"/>
<source>Find</source> <source>Find</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="96"/> <location filename="../../src/control/editorview.cpp" line="95"/>
<source>Goto</source> <source>Goto</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="98"/> <location filename="../../src/control/editorview.cpp" line="97"/>
<source>Fill</source> <source>Fill</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="100"/> <location filename="../../src/control/editorview.cpp" line="99"/>
<source>MetaData</source> <source>MetaData</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="102"/> <location filename="../../src/control/editorview.cpp" line="101"/>
<source>BookMark</source> <source>BookMark</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="262"/> <location filename="../../src/control/editorview.cpp" line="261"/>
<source>Untitled</source> <source>Untitled</source>
<translation></translation> <translation></translation>
</message> </message>
@ -2216,210 +2216,210 @@
<context> <context>
<name>PluginSystem</name> <name>PluginSystem</name>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="92"/> <location filename="../../src/plugin/pluginsystem.cpp" line="91"/>
<source>LoadingPlugin</source> <source>LoadingPlugin</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="110"/> <location filename="../../src/plugin/pluginsystem.cpp" line="109"/>
<source>InvalidPluginBrokenInfo</source> <source>InvalidPluginBrokenInfo</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="539"/> <location filename="../../src/plugin/pluginsystem.cpp" line="538"/>
<source>AppClosingCanceled:</source> <source>AppClosingCanceled:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="616"/> <location filename="../../src/plugin/pluginsystem.cpp" line="615"/>
<source>- PluginID:</source> <source>- PluginID:</source>
<translation>- ID</translation> <translation>- ID</translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="641"/> <location filename="../../src/plugin/pluginsystem.cpp" line="637"/>
<source>FoundDrvPluginCount</source> <source>FoundDrvPluginCount</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="702"/> <location filename="../../src/plugin/pluginsystem.cpp" line="698"/>
<source>RegisterScriptFnUnSupportedTypes:</source> <source>RegisterScriptFnUnSupportedTypes:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="712"/> <location filename="../../src/plugin/pluginsystem.cpp" line="708"/>
<location filename="../../src/plugin/pluginsystem.cpp" line="776"/> <location filename="../../src/plugin/pluginsystem.cpp" line="772"/>
<source>RegisterScriptFnInvalidSig:</source> <source>RegisterScriptFnInvalidSig:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="720"/> <location filename="../../src/plugin/pluginsystem.cpp" line="716"/>
<location filename="../../src/plugin/pluginsystem.cpp" line="784"/> <location filename="../../src/plugin/pluginsystem.cpp" line="780"/>
<source>RegisterScriptFnConflitSig:</source> <source>RegisterScriptFnConflitSig:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="834"/> <location filename="../../src/plugin/pluginsystem.cpp" line="830"/>
<source>InvalidEnumName:</source> <source>InvalidEnumName:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="844"/> <location filename="../../src/plugin/pluginsystem.cpp" line="840"/>
<source>InvalidEnumValue:</source> <source>InvalidEnumValue:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="879"/> <location filename="../../src/plugin/pluginsystem.cpp" line="875"/>
<source>InvalidMarcosRegister:</source> <source>InvalidMarcosRegister:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1118"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1114"/>
<source>ErrLoadPluginSign</source> <source>ErrLoadPluginSign</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1122"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1118"/>
<source>ErrLoadPluginSDKVersion</source> <source>ErrLoadPluginSDKVersion</source>
<translation> SDK </translation> <translation> SDK </translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1126"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1122"/>
<source>ErrLoadPluginNoName</source> <source>ErrLoadPluginNoName</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1147"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1143"/>
<source>ErrLoadInitPlugin</source> <source>ErrLoadInitPlugin</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1154"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1150"/>
<source>PluginName :</source> <source>PluginName :</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1155"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1151"/>
<source>PluginAuthor :</source> <source>PluginAuthor :</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1156"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1152"/>
<source>PluginWidgetRegister</source> <source>PluginWidgetRegister</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1261"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1257"/>
<source>ErrLoadExtPluginSign</source> <source>ErrLoadExtPluginSign</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1265"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1261"/>
<source>ErrLoadExtPluginSDKVersion</source> <source>ErrLoadExtPluginSDKVersion</source>
<translation> SDK </translation> <translation> SDK </translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1268"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1264"/>
<source>ExtPluginAuthor :</source> <source>ExtPluginAuthor :</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1269"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1265"/>
<source>ExtPluginWidgetRegister</source> <source>ExtPluginWidgetRegister</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1285"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1281"/>
<source>ErrLoadInitExtPlugin</source> <source>ErrLoadInitExtPlugin</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1307"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1303"/>
<source>ChooseFile</source> <source>ChooseFile</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1318"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1314"/>
<location filename="../../src/plugin/pluginsystem.cpp" line="1323"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1319"/>
<source>Error</source> <source>Error</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1319"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1315"/>
<source>FileNotExist</source> <source>FileNotExist</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1324"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1320"/>
<source>FilePermission</source> <source>FilePermission</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1354"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1350"/>
<source>EmptyNameDockWidget:</source> <source>EmptyNameDockWidget:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1364"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1360"/>
<source>InvalidNameDockWidget:</source> <source>InvalidNameDockWidget:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1372"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1368"/>
<source>InvalidNullDockWidget:</source> <source>InvalidNullDockWidget:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1596"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1592"/>
<source>[EvilCall]</source> <source>[EvilCall]</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="3007"/> <location filename="../../src/plugin/pluginsystem.cpp" line="3003"/>
<source>Not allowed operation in non-UI thread</source> <source>Not allowed operation in non-UI thread</source>
<translation> UI 线</translation> <translation> UI 线</translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="667"/> <location filename="../../src/plugin/pluginsystem.cpp" line="663"/>
<source>UnsafePluginDir</source> <source>UnsafePluginDir</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="117"/> <location filename="../../src/plugin/pluginsystem.cpp" line="116"/>
<source>InvalidPluginID</source> <source>InvalidPluginID</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="120"/> <location filename="../../src/plugin/pluginsystem.cpp" line="119"/>
<source>InvalidDupPlugin</source> <source>InvalidDupPlugin</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="581"/> <location filename="../../src/plugin/pluginsystem.cpp" line="580"/>
<source>FoundPluginCount</source> <source>FoundPluginCount</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="612"/> <location filename="../../src/plugin/pluginsystem.cpp" line="611"/>
<source>PluginLoadingFailedSummary</source> <source>PluginLoadingFailedSummary</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="617"/> <location filename="../../src/plugin/pluginsystem.cpp" line="616"/>
<source>- Dependencies:</source> <source>- Dependencies:</source>
<translation>- </translation> <translation>- </translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="619"/> <location filename="../../src/plugin/pluginsystem.cpp" line="618"/>
<source>PUID:</source> <source>PUID:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="620"/> <location filename="../../src/plugin/pluginsystem.cpp" line="619"/>
<source>Version:</source> <source>Version:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="627"/> <location filename="../../src/plugin/pluginsystem.cpp" line="626"/>
<source>PluginLoadingFinished</source> <source>PluginLoadingFinished</source>
<translation></translation> <translation></translation>
</message> </message>

View File

@ -332,67 +332,67 @@
<context> <context>
<name>EditorView</name> <name>EditorView</name>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="79"/> <location filename="../../src/control/editorview.cpp" line="78"/>
<source>Cut</source> <source>Cut</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="81"/> <location filename="../../src/control/editorview.cpp" line="80"/>
<source>CutHex</source> <source>CutHex</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="83"/> <location filename="../../src/control/editorview.cpp" line="82"/>
<source>Copy</source> <source>Copy</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="85"/> <location filename="../../src/control/editorview.cpp" line="84"/>
<source>CopyHex</source> <source>CopyHex</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="87"/> <location filename="../../src/control/editorview.cpp" line="86"/>
<source>Paste</source> <source>Paste</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="89"/> <location filename="../../src/control/editorview.cpp" line="88"/>
<source>PasteHex</source> <source>PasteHex</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="91"/> <location filename="../../src/control/editorview.cpp" line="90"/>
<source>Delete</source> <source>Delete</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="94"/> <location filename="../../src/control/editorview.cpp" line="93"/>
<source>Find</source> <source>Find</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="96"/> <location filename="../../src/control/editorview.cpp" line="95"/>
<source>Goto</source> <source>Goto</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="98"/> <location filename="../../src/control/editorview.cpp" line="97"/>
<source>Fill</source> <source>Fill</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="100"/> <location filename="../../src/control/editorview.cpp" line="99"/>
<source>MetaData</source> <source>MetaData</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="102"/> <location filename="../../src/control/editorview.cpp" line="101"/>
<source>BookMark</source> <source>BookMark</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="262"/> <location filename="../../src/control/editorview.cpp" line="261"/>
<source>Untitled</source> <source>Untitled</source>
<translation></translation> <translation></translation>
</message> </message>
@ -2216,210 +2216,210 @@
<context> <context>
<name>PluginSystem</name> <name>PluginSystem</name>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="92"/> <location filename="../../src/plugin/pluginsystem.cpp" line="91"/>
<source>LoadingPlugin</source> <source>LoadingPlugin</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="110"/> <location filename="../../src/plugin/pluginsystem.cpp" line="109"/>
<source>InvalidPluginBrokenInfo</source> <source>InvalidPluginBrokenInfo</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="539"/> <location filename="../../src/plugin/pluginsystem.cpp" line="538"/>
<source>AppClosingCanceled:</source> <source>AppClosingCanceled:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="616"/> <location filename="../../src/plugin/pluginsystem.cpp" line="615"/>
<source>- PluginID:</source> <source>- PluginID:</source>
<translation>- ID</translation> <translation>- ID</translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="641"/> <location filename="../../src/plugin/pluginsystem.cpp" line="637"/>
<source>FoundDrvPluginCount</source> <source>FoundDrvPluginCount</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="702"/> <location filename="../../src/plugin/pluginsystem.cpp" line="698"/>
<source>RegisterScriptFnUnSupportedTypes:</source> <source>RegisterScriptFnUnSupportedTypes:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="712"/> <location filename="../../src/plugin/pluginsystem.cpp" line="708"/>
<location filename="../../src/plugin/pluginsystem.cpp" line="776"/> <location filename="../../src/plugin/pluginsystem.cpp" line="772"/>
<source>RegisterScriptFnInvalidSig:</source> <source>RegisterScriptFnInvalidSig:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="720"/> <location filename="../../src/plugin/pluginsystem.cpp" line="716"/>
<location filename="../../src/plugin/pluginsystem.cpp" line="784"/> <location filename="../../src/plugin/pluginsystem.cpp" line="780"/>
<source>RegisterScriptFnConflitSig:</source> <source>RegisterScriptFnConflitSig:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="834"/> <location filename="../../src/plugin/pluginsystem.cpp" line="830"/>
<source>InvalidEnumName:</source> <source>InvalidEnumName:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="844"/> <location filename="../../src/plugin/pluginsystem.cpp" line="840"/>
<source>InvalidEnumValue:</source> <source>InvalidEnumValue:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="879"/> <location filename="../../src/plugin/pluginsystem.cpp" line="875"/>
<source>InvalidMarcosRegister:</source> <source>InvalidMarcosRegister:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1118"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1114"/>
<source>ErrLoadPluginSign</source> <source>ErrLoadPluginSign</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1122"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1118"/>
<source>ErrLoadPluginSDKVersion</source> <source>ErrLoadPluginSDKVersion</source>
<translation> SDK </translation> <translation> SDK </translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1126"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1122"/>
<source>ErrLoadPluginNoName</source> <source>ErrLoadPluginNoName</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1147"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1143"/>
<source>ErrLoadInitPlugin</source> <source>ErrLoadInitPlugin</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1154"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1150"/>
<source>PluginName :</source> <source>PluginName :</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1155"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1151"/>
<source>PluginAuthor :</source> <source>PluginAuthor :</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1156"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1152"/>
<source>PluginWidgetRegister</source> <source>PluginWidgetRegister</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1261"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1257"/>
<source>ErrLoadExtPluginSign</source> <source>ErrLoadExtPluginSign</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1265"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1261"/>
<source>ErrLoadExtPluginSDKVersion</source> <source>ErrLoadExtPluginSDKVersion</source>
<translation> SDK </translation> <translation> SDK </translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1268"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1264"/>
<source>ExtPluginAuthor :</source> <source>ExtPluginAuthor :</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1269"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1265"/>
<source>ExtPluginWidgetRegister</source> <source>ExtPluginWidgetRegister</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1285"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1281"/>
<source>ErrLoadInitExtPlugin</source> <source>ErrLoadInitExtPlugin</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1307"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1303"/>
<source>ChooseFile</source> <source>ChooseFile</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1318"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1314"/>
<location filename="../../src/plugin/pluginsystem.cpp" line="1323"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1319"/>
<source>Error</source> <source>Error</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1319"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1315"/>
<source>FileNotExist</source> <source>FileNotExist</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1324"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1320"/>
<source>FilePermission</source> <source>FilePermission</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1354"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1350"/>
<source>EmptyNameDockWidget:</source> <source>EmptyNameDockWidget:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1364"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1360"/>
<source>InvalidNameDockWidget:</source> <source>InvalidNameDockWidget:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1372"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1368"/>
<source>InvalidNullDockWidget:</source> <source>InvalidNullDockWidget:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="1596"/> <location filename="../../src/plugin/pluginsystem.cpp" line="1592"/>
<source>[EvilCall]</source> <source>[EvilCall]</source>
<translation>調</translation> <translation>調</translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="3007"/> <location filename="../../src/plugin/pluginsystem.cpp" line="3003"/>
<source>Not allowed operation in non-UI thread</source> <source>Not allowed operation in non-UI thread</source>
<translation> UI </translation> <translation> UI </translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="667"/> <location filename="../../src/plugin/pluginsystem.cpp" line="663"/>
<source>UnsafePluginDir</source> <source>UnsafePluginDir</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="117"/> <location filename="../../src/plugin/pluginsystem.cpp" line="116"/>
<source>InvalidPluginID</source> <source>InvalidPluginID</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="120"/> <location filename="../../src/plugin/pluginsystem.cpp" line="119"/>
<source>InvalidDupPlugin</source> <source>InvalidDupPlugin</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="581"/> <location filename="../../src/plugin/pluginsystem.cpp" line="580"/>
<source>FoundPluginCount</source> <source>FoundPluginCount</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="612"/> <location filename="../../src/plugin/pluginsystem.cpp" line="611"/>
<source>PluginLoadingFailedSummary</source> <source>PluginLoadingFailedSummary</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="617"/> <location filename="../../src/plugin/pluginsystem.cpp" line="616"/>
<source>- Dependencies:</source> <source>- Dependencies:</source>
<translation>- </translation> <translation>- </translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="619"/> <location filename="../../src/plugin/pluginsystem.cpp" line="618"/>
<source>PUID:</source> <source>PUID:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="620"/> <location filename="../../src/plugin/pluginsystem.cpp" line="619"/>
<source>Version:</source> <source>Version:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/plugin/pluginsystem.cpp" line="627"/> <location filename="../../src/plugin/pluginsystem.cpp" line="626"/>
<source>PluginLoadingFinished</source> <source>PluginLoadingFinished</source>
<translation></translation> <translation></translation>
</message> </message>

View File

@ -39,7 +39,10 @@ void CrashHandler::init() {
::SetUnhandledExceptionFilter(ExceptionFilter); ::SetUnhandledExceptionFilter(ExceptionFilter);
#else #else
::signal(SIGSEGV, signalHandler); ::signal(SIGSEGV, signalHandler);
::signal(SIGILL, signalHandler);
::signal(SIGABRT, signalHandler); ::signal(SIGABRT, signalHandler);
::signal(SIGFPE, signalHandler);
::signal(SIGBUS, signalHandler);
#endif #endif
} }
@ -58,6 +61,7 @@ void CrashHandler::reportCrashAndExit() {
ss << Qt::endl; ss << Qt::endl;
// we should keep this exception free
auto &plgsys = PluginSystem::instance(); auto &plgsys = PluginSystem::instance();
ss << QStringLiteral("Plugin System:") << Qt::endl; ss << QStringLiteral("Plugin System:") << Qt::endl;
ss << QStringLiteral("* Loading: ") << plgsys.currentLoadingPlugin() ss << QStringLiteral("* Loading: ") << plgsys.currentLoadingPlugin()
@ -122,5 +126,10 @@ void CrashHandler::reportCrashAndExit() {
r.setInfomation(buffer); r.setInfomation(buffer);
r.exec(); r.exec();
#ifdef Q_OS_LINUX
// because abort() will also trigger it
::signal(SIGABRT, nullptr);
#endif
abort(); abort();
} }

View File

@ -32,7 +32,6 @@
#include <QVBoxLayout> #include <QVBoxLayout>
#ifdef Q_OS_LINUX #ifdef Q_OS_LINUX
#include "class/scopeguard.h"
#include <unistd.h> #include <unistd.h>
#endif #endif

View File

@ -38,7 +38,6 @@
#include <QFileInfoList> #include <QFileInfoList>
#include <QMessageBox> #include <QMessageBox>
#include <QPluginLoader> #include <QPluginLoader>
#include <QtCore>
PluginSystem::PluginSystem(QObject *parent) : QObject(parent) {} PluginSystem::PluginSystem(QObject *parent) : QObject(parent) {}