- enhancement: If executable doesn't have symbol table, inform user and stop.

- enhancement: If breakpoint is setted but executable doesn't have debug info ,inform user and stop.
  - enhancement: If current compiler set has "strip addition infos(-s)" enabled, inform user and stop.
This commit is contained in:
Roy Qu 2023-02-18 12:08:03 +08:00
parent a91dc12519
commit 24734bfb28
16 changed files with 1065 additions and 885 deletions

View File

@ -37,7 +37,12 @@ Red Panda C++ Version 2.12
- enhancement: Show "..." instead of "...}" when folding #if/#endif - enhancement: Show "..." instead of "...}" when folding #if/#endif
- enhancement: Correctly handle high-precision mouse wheel / touchpad in editors. - enhancement: Correctly handle high-precision mouse wheel / touchpad in editors.
- enhancement: Greatly reduce time to open/edit big files. - enhancement: Greatly reduce time to open/edit big files.
- enhancement: Reduce flicker when editing big files. - enhancement: Reduce flicker when editing big files.
- enhancement: If executable doesn't have symbol table, inform user and stop.
- enhancement: If breakpoint is setted but executable doesn't have debug info inform user and stop.
- enhancement: If current compiler set has "strip addition infos(-s)" enabled, inform user and stop.
Red Panda C++ Version 2.11 Red Panda C++ Version 2.11

View File

@ -46,12 +46,6 @@
#define COMPILER_OPTION_ON "on" #define COMPILER_OPTION_ON "on"
#define COMPILER_OPTION_OFF "" #define COMPILER_OPTION_OFF ""
enum class CompilerSetType {
RELEASE,
DEBUG,
PROFILING
};
enum class CompilerType { enum class CompilerType {
GCC, GCC,
GCC_UTF8, GCC_UTF8,

View File

@ -194,6 +194,10 @@ bool Debugger::start(int compilerSetIndex, const QString& inferior, const QStrin
&MainWindow::removeActiveBreakpoints); &MainWindow::removeActiveBreakpoints);
connect(mReader, &DebugReader::inferiorStopped,pMainWindow, connect(mReader, &DebugReader::inferiorStopped,pMainWindow,
&MainWindow::setActiveBreakpoint); &MainWindow::setActiveBreakpoint);
connect(mReader, &DebugReader::errorNoSymbolTable,pMainWindow,
&MainWindow::stopDebugForNoSymbolTable);
connect(mReader, &DebugReader::errorNoSourceFile,pMainWindow,
&MainWindow::stopDebugForNoSourceFile);
connect(mReader, &DebugReader::inferiorStopped,this, connect(mReader, &DebugReader::inferiorStopped,this,
&Debugger::refreshAll); &Debugger::refreshAll);
@ -1167,7 +1171,18 @@ void DebugReader::processExecAsyncRecord(const QByteArray &line)
void DebugReader::processError(const QByteArray &errorLine) void DebugReader::processError(const QByteArray &errorLine)
{ {
mConsoleOutput.append(QString::fromLocal8Bit(errorLine)); QString s = QString::fromLocal8Bit(errorLine);
mConsoleOutput.append(s);
int idx=s.indexOf(",msg=\"No symbol table is loaded");
if (idx>0) {
emit errorNoSymbolTable();
return;
}
idx=s.indexOf(",msg=\"No source file named ");
if (idx>0) {
emit errorNoSourceFile();
return;
}
} }
void DebugReader::processResultRecord(const QByteArray &line) void DebugReader::processResultRecord(const QByteArray &line)

View File

@ -516,6 +516,8 @@ signals:
void cmdStarted(); void cmdStarted();
void cmdFinished(); void cmdFinished();
void errorNoSymbolTable();
void errorNoSourceFile();
void breakpointInfoGetted(const QString& filename, int line, int number); void breakpointInfoGetted(const QString& filename, int line, int number);
void inferiorContinued(); void inferiorContinued();
void inferiorStopped(const QString& filename, int line, bool setFocus); void inferiorStopped(const QString& filename, int line, bool setFocus);

View File

@ -1981,6 +1981,7 @@ void Editor::onTooltipTimer()
void Editor::onEndParsing() void Editor::onEndParsing()
{ {
qDebug()<<"yes";
mIdentCache.clear(); mIdentCache.clear();
invalidate(); invalidate();
} }

View File

@ -2090,20 +2090,34 @@ void MainWindow::debug()
QStringList binDirs; QStringList binDirs;
switch(getCompileTarget()) { switch(getCompileTarget()) {
case CompileTarget::Project: case CompileTarget::Project:
compilerSet=pSettings->compilerSets().getSet(mProject->options().compilerSet);
if (!compilerSet)
compilerSet = pSettings->compilerSets().defaultSet();
binDirs = mProject->binDirs(); binDirs = mProject->binDirs();
// Check if we enabled proper options // Check if we enabled proper options
debugEnabled = mProject->getCompileOption(CC_CMD_OPT_DEBUG_INFO) == COMPILER_OPTION_ON; debugEnabled = mProject->getCompileOption(CC_CMD_OPT_DEBUG_INFO) == COMPILER_OPTION_ON;
stripEnabled = mProject->getCompileOption(LINK_CMD_OPT_STRIP_EXE) == COMPILER_OPTION_ON; stripEnabled = mProject->getCompileOption(LINK_CMD_OPT_STRIP_EXE) == COMPILER_OPTION_ON;
if (stripEnabled) {
QMessageBox::critical(this,
tr("Can't Debug"),
tr("Your compiler set's \"Strip executable (-s)\" options is turnned on")
+"<BR /><BR />"
+tr("The generated executable doesn't have symbol table, and can't be debugged.")
+"<BR /><BR />"
+tr("Please correct it, recompile and retry debug.")
);
return;
}
// Ask the user if he wants to enable debugging... // Ask the user if he wants to enable debugging...
if ((!debugEnabled) || stripEnabled) { if (compilerSet->name().endsWith("Debug") && !debugEnabled) {
if (QMessageBox::question(this, if (QMessageBox::question(this,
tr("Enable debugging"), tr("Correct compiler setting"),
tr("You are not using a Debug compiler setting.") tr("You are using a Debug compiler set with wrong compile/link settings: ")
+"<BR /><BR />" +"<BR /><BR />"
+tr("Please use a Debug compiler set, or enable the \"generate debugging info (-g3)\" and disable the \"strip additional info (-s)\" options in the compiler settings.") +tr(" - \"Generate debug info (-g3)\" should be turned on")
+"<BR /><BR />" +"<BR /><BR />"
+tr("Do you want to set it now?") +tr("Do you want to correct it now?")
) == QMessageBox::Yes) { ) == QMessageBox::Yes) {
changeOptions( changeOptions(
SettingsDialog::tr("Compiler Set"), SettingsDialog::tr("Compiler Set"),
SettingsDialog::tr("Compiler") SettingsDialog::tr("Compiler")
@ -2183,15 +2197,28 @@ void MainWindow::debug()
// Check if we enabled proper options // Check if we enabled proper options
debugEnabled = compilerSet->getCompileOptionValue(CC_CMD_OPT_DEBUG_INFO) == COMPILER_OPTION_ON; debugEnabled = compilerSet->getCompileOptionValue(CC_CMD_OPT_DEBUG_INFO) == COMPILER_OPTION_ON;
stripEnabled = compilerSet->getCompileOptionValue(LINK_CMD_OPT_STRIP_EXE) == COMPILER_OPTION_ON; stripEnabled = compilerSet->getCompileOptionValue(LINK_CMD_OPT_STRIP_EXE) == COMPILER_OPTION_ON;
if (stripEnabled) {
QMessageBox::critical(this,
tr("Can't Debug"),
tr("Your compiler set's \"Strip executable (-s)\" options is turnned on")
+"<BR /><BR />"
+tr("The generated executable doesn't have symbol table, and can't be debugged.")
+"<BR /><BR />"
+tr("Please correct it, recompile and retry debug.")
);
return;
}
// Ask the user if he wants to enable debugging... // Ask the user if he wants to enable debugging...
if ((!debugEnabled) || stripEnabled) { if (compilerSet->name().endsWith("Debug") && !debugEnabled) {
if (QMessageBox::question(this, if (QMessageBox::question(this,
tr("Enable debugging"), tr("Enable debugging"),
tr("You are not using a Debug compiler setting.") tr("You are using a Debug compiler set with wrong compile/link settings: ")
+"<BR /><BR />" +"<BR /><BR />"
+tr("Please choose a Debug compiler set in the toolbarin the compiler set settings's \"settings\" page.") +tr(" - \"Generate debug info (-g3)\" should be turned on")
+"<BR /><BR />" +"<BR /><BR />"
+tr("Do you want to set it now?") +tr(" - \"Strip executable (-s)\" should be turned off")
+"<BR /><BR />"
+tr("Do you want to correct it now?")
) == QMessageBox::Yes) { ) == QMessageBox::Yes) {
changeOptions( changeOptions(
SettingsDialog::tr("Compiler Set"), SettingsDialog::tr("Compiler Set"),
@ -2285,7 +2312,7 @@ void MainWindow::debug()
mDebugger->sendCommand("-environment-cd", QString("\"%1\"").arg(extractFileDir(filePath))); // restore working directory mDebugger->sendCommand("-environment-cd", QString("\"%1\"").arg(extractFileDir(filePath))); // restore working directory
if (pSettings->debugger().useGDBServer()) { if (pSettings->debugger().useGDBServer()) {
mDebugger->sendCommand("-target-select",QString("remote localhost:%1").arg(pSettings->debugger().GDBServerPort())); mDebugger->sendCommand("-target-select",QString("remote localhost:%1").arg(pSettings->debugger().GDBServerPort()));
if (!debugInferiorhasBreakpoint()) { if (!debugInferiorhasBreakpoint() || !debugEnabled) {
mDebugger->sendCommand("-break-insert","-t main"); mDebugger->sendCommand("-break-insert","-t main");
} }
if (pSettings->executor().useParams()) { if (pSettings->executor().useParams()) {
@ -2300,11 +2327,10 @@ void MainWindow::debug()
mDebugger->sendCommand("-exec-arguments", pSettings->executor().params()); mDebugger->sendCommand("-exec-arguments", pSettings->executor().params());
} }
if (!debugInferiorhasBreakpoint()) { if (!debugInferiorhasBreakpoint()) {
mDebugger->sendCommand("-exec-run", "--start"); mDebugger->sendCommand("-exec-run","--start");
} else { } else {
mDebugger->sendCommand("-exec-run",""); mDebugger->sendCommand("-exec-run","");
} }
} }
} }
@ -4909,6 +4935,31 @@ void MainWindow::enableDebugActions()
} }
} }
void MainWindow::stopDebugForNoSymbolTable()
{
mDebugger->stop();
QMessageBox::critical(this,
tr("Debug Failed"),
tr("The executable doesn't have symbol table, and can't be debugged.")
+"<BR /><BR />"
+tr("Please turn off your compiler set's \"Strip executable (-s)\" option, recompile and retry debug.")
);
}
void MainWindow::stopDebugForNoSourceFile()
{
mDebugger->stop();
QMessageBox::critical(this,
tr("Debug Failed"),
tr("The executable doesn't have enough debug info to set breakpoint.")
+"<BR /><BR />"
+tr("Please choose a Debug compiler set in the toolbar, or turn on your compiler set's \"Generate debug info (-g3)\" option in the options dialog.")
+tr("Then recompile and retry debug.")
+"<BR /><BR/>"
+tr("Or you can remove all breakpoints, open cpu info dialog, and try debug machine codes.")
);
}
void MainWindow::onTodoParsingFile(const QString& filename) void MainWindow::onTodoParsingFile(const QString& filename)
{ {
mTodoModel.removeTodosForFile(filename); mTodoModel.removeTodosForFile(filename);
@ -9433,7 +9484,6 @@ void MainWindow::on_actionNew_GAS_File_triggered()
newEditor("s"); newEditor("s");
} }
void MainWindow::on_actionGNU_Assembler_Manual_triggered() void MainWindow::on_actionGNU_Assembler_Manual_triggered()
{ {
QDesktopServices::openUrl(QUrl("https://sourceware.org/binutils/docs/as/index.html")); QDesktopServices::openUrl(QUrl("https://sourceware.org/binutils/docs/as/index.html"));

View File

@ -250,6 +250,8 @@ public slots:
void onEditorTabContextMenu(QTabWidget* tabWidget, const QPoint& pos); void onEditorTabContextMenu(QTabWidget* tabWidget, const QPoint& pos);
void disableDebugActions(); void disableDebugActions();
void enableDebugActions(); void enableDebugActions();
void stopDebugForNoSymbolTable();
void stopDebugForNoSourceFile();
void onTodoParsingFile(const QString& filename); void onTodoParsingFile(const QString& filename);
void onTodoParseStarted(); void onTodoParseStarted();
void onTodoFound(const QString& filename, int lineNo, int ch, const QString& line); void onTodoFound(const QString& filename, int lineNo, int ch, const QString& line);

View File

@ -907,7 +907,7 @@ void Project::setCompilerSet(int compilerSetIndex)
{ {
if (mOptions.compilerSet != compilerSetIndex) { if (mOptions.compilerSet != compilerSetIndex) {
mOptions.compilerSet = compilerSetIndex; mOptions.compilerSet = compilerSetIndex;
updateCompilerSetType(); updateCompilerSetting();
setModified(true); setModified(true);
} }
} }
@ -923,7 +923,7 @@ bool Project::assignTemplate(const std::shared_ptr<ProjectTemplate> aTemplate, b
mOptions = aTemplate->options(); mOptions = aTemplate->options();
mOptions.compilerSet = pSettings->compilerSets().defaultIndex(); mOptions.compilerSet = pSettings->compilerSets().defaultIndex();
mOptions.isCpp = useCpp; mOptions.isCpp = useCpp;
updateCompilerSetType(); updateCompilerSetting();
mOptions.icon = aTemplate->icon(); mOptions.icon = aTemplate->icon();
QTextCodec* codec=QTextCodec::codecForName(mOptions.encoding); QTextCodec* codec=QTextCodec::codecForName(mOptions.encoding);
@ -1179,7 +1179,6 @@ void Project::saveOptions()
ini.SetLongValue("Project","IncludeVersionInfo", mOptions.includeVersionInfo); ini.SetLongValue("Project","IncludeVersionInfo", mOptions.includeVersionInfo);
ini.SetLongValue("Project","SupportXPThemes", mOptions.supportXPThemes); ini.SetLongValue("Project","SupportXPThemes", mOptions.supportXPThemes);
ini.SetLongValue("Project","CompilerSet", mOptions.compilerSet); ini.SetLongValue("Project","CompilerSet", mOptions.compilerSet);
ini.SetLongValue("Project","CompilerSetType", (int)mOptions.compilerSetType);
ini.Delete("Project","CompilerSettings"); // remove old compiler settings ini.Delete("Project","CompilerSettings"); // remove old compiler settings
ini.Delete("CompilerSettings",nullptr); // remove old compiler settings ini.Delete("CompilerSettings",nullptr); // remove old compiler settings
foreach (const QString& key, mOptions.compilerOptions.keys()) { foreach (const QString& key, mOptions.compilerOptions.keys()) {
@ -2111,12 +2110,6 @@ void Project::loadOptions(SimpleIni& ini)
mOptions.execEncoding = ini.GetValue("Project","ExecEncoding", ENCODING_SYSTEM_DEFAULT); mOptions.execEncoding = ini.GetValue("Project","ExecEncoding", ENCODING_SYSTEM_DEFAULT);
mOptions.addCharset = ini.GetBoolValue("Project", "AddCharset", true); mOptions.addCharset = ini.GetBoolValue("Project", "AddCharset", true);
int val=ini.GetLongValue("Project","CompilerSetType",-1);
if (val<0) {
updateCompilerSetType();
} else {
mOptions.compilerSetType=(CompilerSetType)val;
}
bool useUTF8 = ini.GetBoolValue("Project", "UseUTF8", false); bool useUTF8 = ini.GetBoolValue("Project", "UseUTF8", false);
if (useUTF8) { if (useUTF8) {
mOptions.encoding = ini.GetValue("Project","Encoding", ENCODING_UTF8); mOptions.encoding = ini.GetValue("Project","Encoding", ENCODING_UTF8);
@ -2255,15 +2248,13 @@ void Project::updateFolderNode(PProjectModelNode node)
} }
} }
void Project::updateCompilerSetType() void Project::updateCompilerSetting()
{ {
Settings::PCompilerSet defaultSet = pSettings->compilerSets().getSet(mOptions.compilerSet); Settings::PCompilerSet defaultSet = pSettings->compilerSets().getSet(mOptions.compilerSet);
if (defaultSet) { if (defaultSet) {
mOptions.compilerSetType=defaultSet->compilerSetType();
mOptions.staticLink = defaultSet->staticLink(); mOptions.staticLink = defaultSet->staticLink();
mOptions.compilerOptions = defaultSet->compileOptions(); mOptions.compilerOptions = defaultSet->compileOptions();
} else { } else {
mOptions.compilerSetType=CompilerSetType::DEBUG;
mOptions.staticLink = false; mOptions.staticLink = false;
} }
} }

View File

@ -340,7 +340,7 @@ private:
void open(); void open();
void removeFolderRecurse(PProjectModelNode node); void removeFolderRecurse(PProjectModelNode node);
void updateFolderNode(PProjectModelNode node); void updateFolderNode(PProjectModelNode node);
void updateCompilerSetType(); void updateCompilerSetting();
private: private:
QHash<QString,PProjectUnit> mUnits; QHash<QString,PProjectUnit> mUnits;

View File

@ -50,7 +50,6 @@ ProjectOptions::ProjectOptions()
includeVersionInfo = false; includeVersionInfo = false;
supportXPThemes = false; supportXPThemes = false;
compilerSet = 0; compilerSet = 0;
compilerSetType = CompilerSetType::DEBUG;
staticLink = true; staticLink = true;
addCharset = true; addCharset = true;
modelType = ProjectModelType::FileSystem; modelType = ProjectModelType::FileSystem;

View File

@ -90,7 +90,6 @@ struct ProjectOptions{
bool includeVersionInfo; bool includeVersionInfo;
bool supportXPThemes; bool supportXPThemes;
int compilerSet; int compilerSet;
CompilerSetType compilerSetType;
QMap<QString,QString> compilerOptions; QMap<QString,QString> compilerOptions;
ProjectVersionInfo versionInfo; ProjectVersionInfo versionInfo;
QString cmdLineArgs; QString cmdLineArgs;

View File

@ -1660,7 +1660,6 @@ void Settings::Editor::setTabToSpaces(bool tabToSpaces)
Settings::CompilerSet::CompilerSet(): Settings::CompilerSet::CompilerSet():
mFullLoaded(false), mFullLoaded(false),
mCompilerType(CompilerType::Unknown), mCompilerType(CompilerType::Unknown),
mCompilerSetType(CompilerSetType::RELEASE),
mAutoAddCharsetParams(false), mAutoAddCharsetParams(false),
mExecCharset(ENCODING_SYSTEM_DEFAULT), mExecCharset(ENCODING_SYSTEM_DEFAULT),
mStaticLink(false), mStaticLink(false),
@ -1726,7 +1725,6 @@ Settings::CompilerSet::CompilerSet(const Settings::CompilerSet &set):
mName(set.mName), mName(set.mName),
mTarget(set.mTarget), mTarget(set.mTarget),
mCompilerType(set.mCompilerType), mCompilerType(set.mCompilerType),
mCompilerSetType(set.mCompilerSetType),
mUseCustomCompileParams(set.mUseCustomCompileParams), mUseCustomCompileParams(set.mUseCustomCompileParams),
mUseCustomLinkParams(set.mUseCustomLinkParams), mUseCustomLinkParams(set.mUseCustomLinkParams),
@ -2680,16 +2678,6 @@ void Settings::CompilerSet::setDebugServer(const QString &newDebugServer)
mDebugServer = newDebugServer; mDebugServer = newDebugServer;
} }
CompilerSetType Settings::CompilerSet::compilerSetType() const
{
return mCompilerSetType;
}
void Settings::CompilerSet::setCompilerSetType(CompilerSetType newCompilerSetType)
{
mCompilerSetType = newCompilerSetType;
}
void Settings::CompilerSet::setCompilerType(CompilerType newCompilerType) void Settings::CompilerSet::setCompilerType(CompilerType newCompilerType)
{ {
mCompilerType = newCompilerType; mCompilerType = newCompilerType;
@ -2786,13 +2774,11 @@ bool Settings::CompilerSets::addSets(const QString &folder, const QString& c_pro
PCompilerSet set= addSet(baseSet); PCompilerSet set= addSet(baseSet);
platformName = "32-bit"; platformName = "32-bit";
set->setName(baseName + " " + platformName + " Release"); set->setName(baseName + " " + platformName + " Release");
set->setCompilerSetType(CompilerSetType::RELEASE);
set64_32Options(set); set64_32Options(set);
setReleaseOptions(set); setReleaseOptions(set);
set = addSet(baseSet); set = addSet(baseSet);
set->setName(baseName + " " + platformName + " Debug"); set->setName(baseName + " " + platformName + " Debug");
set->setCompilerSetType(CompilerSetType::DEBUG);
set64_32Options(set); set64_32Options(set);
setDebugOptions(set); setDebugOptions(set);
} }
@ -2804,19 +2790,16 @@ bool Settings::CompilerSets::addSets(const QString &folder, const QString& c_pro
PCompilerSet debugSet = addSet(baseSet); PCompilerSet debugSet = addSet(baseSet);
debugSet->setName(baseName + " " + platformName + " Debug"); debugSet->setName(baseName + " " + platformName + " Debug");
debugSet->setCompilerSetType(CompilerSetType::DEBUG);
setDebugOptions(debugSet); setDebugOptions(debugSet);
// Enable ASan compiler set if it is supported and gdb works with ASan. // Enable ASan compiler set if it is supported and gdb works with ASan.
#ifdef Q_OS_LINUX #ifdef Q_OS_LINUX
PCompilerSet debugAsanSet = addSet(baseSet); PCompilerSet debugAsanSet = addSet(baseSet);
debugAsanSet->setName(baseName + " " + platformName + " Debug with ASan"); debugAsanSet->setName(baseName + " " + platformName + " Debug with ASan");
debugAsanSet->setCompilerSetType(CompilerSetType::DEBUG);
setDebugOptions(debugAsanSet, true); setDebugOptions(debugAsanSet, true);
#endif #endif
baseSet->setName(baseName + " " + platformName + " Release"); baseSet->setName(baseName + " " + platformName + " Release");
baseSet->setCompilerSetType(CompilerSetType::RELEASE);
setReleaseOptions(baseSet); setReleaseOptions(baseSet);
// baseSet = addSet(folder); // baseSet = addSet(folder);
@ -3129,7 +3112,6 @@ void Settings::CompilerSets::saveSet(int index)
mSettings->mSettings.setValue("Name", pSet->name()); mSettings->mSettings.setValue("Name", pSet->name());
mSettings->mSettings.setValue("Target", pSet->target()); mSettings->mSettings.setValue("Target", pSet->target());
mSettings->mSettings.setValue("CompilerType", (int)pSet->compilerType()); mSettings->mSettings.setValue("CompilerType", (int)pSet->compilerType());
mSettings->mSettings.setValue("CompilerSetType", (int)pSet->compilerSetType());
// Paths // Paths
savePathList("Bins",pSet->binDirs()); savePathList("Bins",pSet->binDirs());
@ -3193,8 +3175,6 @@ Settings::PCompilerSet Settings::CompilerSets::loadSet(int index)
pSet->setCompilerType((CompilerType)mSettings->mSettings.value("CompilerType").toInt()); pSet->setCompilerType((CompilerType)mSettings->mSettings.value("CompilerType").toInt());
} }
pSet->setCompilerSetType((CompilerSetType)mSettings->mSettings.value("CompilerSetType").toInt());
// Load extra 'general' options // Load extra 'general' options
pSet->setUseCustomCompileParams(mSettings->mSettings.value("useCustomCompileParams", false).toBool()); pSet->setUseCustomCompileParams(mSettings->mSettings.value("useCustomCompileParams", false).toBool());
pSet->setCustomCompileParams(mSettings->mSettings.value("customCompileParams").toString()); pSet->setCustomCompileParams(mSettings->mSettings.value("customCompileParams").toString());

View File

@ -1381,9 +1381,6 @@ public:
void setCompilerType(CompilerType newCompilerType); void setCompilerType(CompilerType newCompilerType);
CompilerSetType compilerSetType() const;
void setCompilerSetType(CompilerSetType newCompilerSetType);
const QString &execCharset() const; const QString &execCharset() const;
void setExecCharset(const QString &newExecCharset); void setExecCharset(const QString &newExecCharset);
@ -1448,7 +1445,6 @@ public:
QString mName; // "TDM-GCC 4.7.1 Release" QString mName; // "TDM-GCC 4.7.1 Release"
QString mTarget; // 'X86_64' / 'i686' QString mTarget; // 'X86_64' / 'i686'
CompilerType mCompilerType; // 'Clang' / 'GCC' CompilerType mCompilerType; // 'Clang' / 'GCC'
CompilerSetType mCompilerSetType; // RELEASE/ DEBUG/ Profile
// User settings // User settings
bool mUseCustomCompileParams; bool mUseCustomCompileParams;

View File

@ -605,7 +605,7 @@
</message> </message>
<message> <message>
<source>Choose Profiler</source> <source>Choose Profiler</source>
<translation>Escolher levantador de perfil</translation> <translation type="vanished">Escolher levantador de perfil</translation>
</message> </message>
<message> <message>
<source>C++ Compiler(g++)</source> <source>C++ Compiler(g++)</source>
@ -617,7 +617,7 @@
</message> </message>
<message> <message>
<source>Profiler(gprof)</source> <source>Profiler(gprof)</source>
<translation>Profiler (gprof)</translation> <translation type="vanished">Profiler (gprof)</translation>
</message> </message>
<message> <message>
<source>make</source> <source>make</source>
@ -751,10 +751,6 @@
<source>Locate windres</source> <source>Locate windres</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Locate gprof</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Assembler</source> <source>Assembler</source>
<translation type="unfinished">Assembler</translation> <translation type="unfinished">Assembler</translation>
@ -3506,11 +3502,11 @@
</message> </message>
<message> <message>
<source>Compile &amp; Run</source> <source>Compile &amp; Run</source>
<translation>Compilar e executar</translation> <translation type="vanished">Compilar e executar</translation>
</message> </message>
<message> <message>
<source>F11</source> <source>F11</source>
<translation>F11</translation> <translation type="vanished">F11</translation>
</message> </message>
<message> <message>
<source>Rebuild All</source> <source>Rebuild All</source>
@ -4118,11 +4114,11 @@
</message> </message>
<message> <message>
<source>Compile now?</source> <source>Compile now?</source>
<translation>Compilar agora?</translation> <translation type="vanished">Compilar agora?</translation>
</message> </message>
<message> <message>
<source>Source file is more recent than executable.</source> <source>Source file is more recent than executable.</source>
<translation>Arquivo fonte é mais recente que o executável.</translation> <translation type="vanished">Arquivo fonte é mais recente que o executável.</translation>
</message> </message>
<message> <message>
<source>Recompile now?</source> <source>Recompile now?</source>
@ -4186,7 +4182,7 @@
</message> </message>
<message> <message>
<source>Recompile?</source> <source>Recompile?</source>
<translation>Recompilar?</translation> <translation type="vanished">Recompilar?</translation>
</message> </message>
<message> <message>
<source>Auto Save Error</source> <source>Auto Save Error</source>
@ -4920,22 +4916,6 @@
<source>FPS Problem Set Files (*.fps;*.xml)</source> <source>FPS Problem Set Files (*.fps;*.xml)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Do you want to set it now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are not using a Debug compiler setting.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please use a Debug compiler set, or enable the &quot;generate debugging info (-g3)&quot; and disable the &quot;strip additional info (-s)&quot; options in the compiler settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose a Debug compiler set in the toolbar, or enable the &quot;generate debugging info (-g3)&quot; and disable the &quot;strip additional info (-s)&quot; options in the compiler set settings&apos;s &quot;settings&quot; page.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Trim trailing spaces</source> <source>Trim trailing spaces</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -5004,6 +4984,70 @@
<source>GNU Assembler Manual</source> <source>GNU Assembler Manual</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Correct compiler setting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are using a Debug compiler set with wrong compile/link settings: </source>
<translation type="unfinished"></translation>
</message>
<message>
<source> - &quot;Generate debug info (-g3)&quot; should be turned on</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> - &quot;Strip executable (-s)&quot; should be turned off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you want to correct it now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Can&apos;t Debug</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Your compiler set&apos;s &quot;Strip executable (-s)&quot; options is turnned on</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please correct it, recompile and retry debug.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The generated executable doesn&apos;t have symbol table, and can&apos;t be debugged.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Debug Failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The executable doesn&apos;t have symbol table, and can&apos;t be debugged.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please turn off your compiler set&apos;s &quot;Strip executable (-s)&quot; option, recompile and retry debug.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The executable doesn&apos;t have enough debug info to set breakpoint.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Then recompile and retry debug.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Or you can remove all breakpoints, open cpu info dialog, and try debug machine codes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose a Debug compiler set in the toolbar, or turn on your compiler set&apos;s &quot;Generate debug info (-g3)&quot; option in the options dialog.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>NewClassDialog</name> <name>NewClassDialog</name>

File diff suppressed because it is too large Load Diff

View File

@ -512,10 +512,6 @@
<source>C Compiler(gcc)</source> <source>C Compiler(gcc)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Choose Profiler</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>C++ Compiler(g++)</source> <source>C++ Compiler(g++)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -524,10 +520,6 @@
<source>Choose C++ Compiler</source> <source>Choose C++ Compiler</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Profiler(gprof)</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>make</source> <source>make</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -660,10 +652,6 @@
<source>Locate windres</source> <source>Locate windres</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Locate gprof</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Assembler</source> <source>Assembler</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3353,14 +3341,6 @@
<source>Convert to UTF-8</source> <source>Convert to UTF-8</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Compile &amp; Run</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>F11</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Rebuild All</source> <source>Rebuild All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3949,14 +3929,6 @@
<source>Source file is not compiled.</source> <source>Source file is not compiled.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Compile now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source file is more recent than executable.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>No compiler set</source> <source>No compiler set</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3993,10 +3965,6 @@
<source>Host application file &apos;%1&apos; doesn&apos;t exist.</source> <source>Host application file &apos;%1&apos; doesn&apos;t exist.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Recompile?</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Auto Save Error</source> <source>Auto Save Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -4705,22 +4673,6 @@
<source>FPS Problem Set Files (*.fps;*.xml)</source> <source>FPS Problem Set Files (*.fps;*.xml)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Do you want to set it now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are not using a Debug compiler setting.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please use a Debug compiler set, or enable the &quot;generate debugging info (-g3)&quot; and disable the &quot;strip additional info (-s)&quot; options in the compiler settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose a Debug compiler set in the toolbar, or enable the &quot;generate debugging info (-g3)&quot; and disable the &quot;strip additional info (-s)&quot; options in the compiler set settings&apos;s &quot;settings&quot; page.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Trim trailing spaces</source> <source>Trim trailing spaces</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -4793,6 +4745,70 @@
<source>GNU Assembler Manual</source> <source>GNU Assembler Manual</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Correct compiler setting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are using a Debug compiler set with wrong compile/link settings: </source>
<translation type="unfinished"></translation>
</message>
<message>
<source> - &quot;Generate debug info (-g3)&quot; should be turned on</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> - &quot;Strip executable (-s)&quot; should be turned off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you want to correct it now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Can&apos;t Debug</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Your compiler set&apos;s &quot;Strip executable (-s)&quot; options is turnned on</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please correct it, recompile and retry debug.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The generated executable doesn&apos;t have symbol table, and can&apos;t be debugged.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Debug Failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The executable doesn&apos;t have symbol table, and can&apos;t be debugged.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please turn off your compiler set&apos;s &quot;Strip executable (-s)&quot; option, recompile and retry debug.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The executable doesn&apos;t have enough debug info to set breakpoint.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Then recompile and retry debug.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Or you can remove all breakpoints, open cpu info dialog, and try debug machine codes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose a Debug compiler set in the toolbar, or turn on your compiler set&apos;s &quot;Generate debug info (-g3)&quot; option in the options dialog.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>NewClassDialog</name> <name>NewClassDialog</name>