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

View File

@ -166,6 +166,15 @@ TestPlugin::TestPlugin() : WingHex::IWingPlugin() {
info.ret = MetaType::Bool;
_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(); }
@ -437,10 +446,10 @@ TestPlugin::colorTable(const QList<void *> &params) {
}
auto invoked =
emit invokeService(QStringLiteral("WingAngelAPI"), "vector2AsArray",
WINGAPI_RETURN_ARG(void *, array),
WINGAPI_ARG(MetaType, MetaType::Color),
WINGAPI_ARG(QVector<void *>, colors));
invokeService(QStringLiteral("WingAngelAPI"), "vector2AsArray",
WINGAPI_RETURN_ARG(void *, array),
WINGAPI_ARG(MetaType, MetaType::Color),
WINGAPI_ARG(QVector<void *>, colors));
if (invoked) {
if (array) {
qDeleteAll(colors);
@ -496,6 +505,14 @@ QVariant TestPlugin::pluginMetaTestEnabled(const QVariantList &params) {
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_b(const QString &b) {
@ -604,6 +621,15 @@ void TestPlugin::setPluginMetaTestEnabled(bool b) {
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>
TestPlugin::registeredScriptFns() const {
return _scriptInfo;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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