- 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:
parent
a91dc12519
commit
24734bfb28
5
NEWS.md
5
NEWS.md
|
@ -38,6 +38,11 @@ Red Panda C++ Version 2.12
|
||||||
- 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
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -1981,6 +1981,7 @@ void Editor::onTooltipTimer()
|
||||||
|
|
||||||
void Editor::onEndParsing()
|
void Editor::onEndParsing()
|
||||||
{
|
{
|
||||||
|
qDebug()<<"yes";
|
||||||
mIdentCache.clear();
|
mIdentCache.clear();
|
||||||
invalidate();
|
invalidate();
|
||||||
}
|
}
|
||||||
|
|
|
@ -2090,19 +2090,33 @@ 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"),
|
||||||
|
@ -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"));
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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());
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 & Run</source>
|
<source>Compile & 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 "generate debugging info (-g3)" and disable the "strip additional info (-s)" 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 "generate debugging info (-g3)" and disable the "strip additional info (-s)" options in the compiler set settings's "settings" 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> - "Generate debug info (-g3)" should be turned on</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source> - "Strip executable (-s)" 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't Debug</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Your compiler set's "Strip executable (-s)" 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't have symbol table, and can't be debugged.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Debug Failed</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The executable doesn't have symbol table, and can't be debugged.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Please turn off your compiler set's "Strip executable (-s)" option, recompile and retry debug.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The executable doesn'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's "Generate debug info (-g3)" 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
|
@ -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 & 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 '%1' doesn't exist.</source>
|
<source>Host application file '%1' doesn'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 "generate debugging info (-g3)" and disable the "strip additional info (-s)" 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 "generate debugging info (-g3)" and disable the "strip additional info (-s)" options in the compiler set settings's "settings" 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> - "Generate debug info (-g3)" should be turned on</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source> - "Strip executable (-s)" 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't Debug</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Your compiler set's "Strip executable (-s)" 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't have symbol table, and can't be debugged.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Debug Failed</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The executable doesn't have symbol table, and can't be debugged.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Please turn off your compiler set's "Strip executable (-s)" option, recompile and retry debug.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The executable doesn'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's "Generate debug info (-g3)" option in the options dialog.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>NewClassDialog</name>
|
<name>NewClassDialog</name>
|
||||||
|
|
Loading…
Reference in New Issue