mirror of
https://github.com/epasveer/seer.git
synced 2026-08-29 16:40:42 +08:00
More dismangle and disassembly flavor changes.
This commit is contained in:
@@ -73,11 +73,11 @@ void SeerAssemblyConfigPage::setDisassembyFlavor (const QString& flavor) const {
|
||||
}
|
||||
}
|
||||
|
||||
void SeerAssemblyConfigPage::setSymbolDemagling (const QString& yesno) const {
|
||||
void SeerAssemblyConfigPage::setSymbolDemagling (const QString& onoff) const {
|
||||
|
||||
if (yesno == "yes") {
|
||||
if (onoff == "on") {
|
||||
demanglingOnRadioButton->setChecked(true);
|
||||
}else if (yesno == "no") {
|
||||
}else if (onoff == "off") {
|
||||
demanglingOffRadioButton->setChecked(true);
|
||||
}else{
|
||||
}
|
||||
@@ -93,7 +93,7 @@ void SeerAssemblyConfigPage::reset () {
|
||||
setShowAssemblyTabOnStartup(false);
|
||||
setKeepAssemblyTabOnTop(true);
|
||||
setDisassembyFlavor("att");
|
||||
setSymbolDemagling("yes");
|
||||
setSymbolDemagling("on");
|
||||
setRegisterFormat("Natural");
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ class SeerAssemblyConfigPage : public QWidget, protected Ui::SeerAssemblyConfigP
|
||||
void setShowAssemblyTabOnStartup (bool flag) const;
|
||||
void setKeepAssemblyTabOnTop (bool flag) const;
|
||||
void setDisassembyFlavor (const QString& flavor) const;
|
||||
void setSymbolDemagling (const QString& yesno) const;
|
||||
void setSymbolDemagling (const QString& onoff) const;
|
||||
void setRegisterFormat (const QString& format) const;
|
||||
|
||||
void reset ();
|
||||
|
||||
@@ -223,9 +223,9 @@ QString SeerConfigDialog::assemblyDisassembyFlavor () const {
|
||||
return _assemblyConfigPage->disassembyFlavor();
|
||||
}
|
||||
|
||||
void SeerConfigDialog::setAssemblySymbolDemagling (const QString& yesno) {
|
||||
void SeerConfigDialog::setAssemblySymbolDemagling (const QString& onoff) {
|
||||
|
||||
_assemblyConfigPage->setSymbolDemagling(yesno);
|
||||
_assemblyConfigPage->setSymbolDemagling(onoff);
|
||||
}
|
||||
|
||||
QString SeerConfigDialog::assemblySymbolDemagling () const {
|
||||
|
||||
@@ -68,7 +68,7 @@ class SeerConfigDialog : public QDialog, protected Ui::SeerConfigDialogForm {
|
||||
void setAssemblyDisassembyFlavor (const QString& flavor);
|
||||
QString assemblyDisassembyFlavor () const;
|
||||
|
||||
void setAssemblySymbolDemagling (const QString& yesno);
|
||||
void setAssemblySymbolDemagling (const QString& onoff);
|
||||
QString assemblySymbolDemagling () const;
|
||||
|
||||
void setAssemblyRegisterFormat (const QString& format);
|
||||
|
||||
+50
-5
@@ -46,6 +46,7 @@ SeerGdbWidget::SeerGdbWidget (QWidget* parent) : QWidget(parent) {
|
||||
_gdbArguments = "--interpreter=mi";
|
||||
_gdbASyncMode = true;
|
||||
_assemblyShowAssemblyTabOnStartup = false;
|
||||
_assemblyDisassemblyFlavor = "att";
|
||||
_gdbHandleTerminatingException = true;
|
||||
_consoleMode = "";
|
||||
_consoleScrollLines = 1000;
|
||||
@@ -611,6 +612,8 @@ void SeerGdbWidget::handleGdbRunExecutable () {
|
||||
handleGdbExecutableSources(); // Load the program source files.
|
||||
handleGdbExecutableWorkingDirectory(); // Set the program's working directory before running.
|
||||
handleGdbExecutableLoadBreakpoints(); // Set the program's breakpoints (if any) before running.
|
||||
handleGdbAssemblyDisassemblyFlavor(); // Set the disassembly flavor to use.
|
||||
handleGdbAssemblySymbolDemangling(); // Set the symbol demangling.
|
||||
|
||||
if (assemblyShowAssemblyTabOnStartup()) {
|
||||
editorManager()->showAssembly();
|
||||
@@ -699,6 +702,8 @@ void SeerGdbWidget::handleGdbStartExecutable () {
|
||||
handleGdbExecutableSources(); // Load the program source files.
|
||||
handleGdbExecutableWorkingDirectory(); // Set the program's working directory before running.
|
||||
handleGdbExecutableLoadBreakpoints(); // Set the program's breakpoints (if any) before running.
|
||||
handleGdbAssemblyDisassemblyFlavor(); // Set the disassembly flavor to use.
|
||||
handleGdbAssemblySymbolDemangling(); // Set the symbol demangling.
|
||||
|
||||
if (assemblyShowAssemblyTabOnStartup()) {
|
||||
editorManager()->showAssembly();
|
||||
@@ -778,7 +783,9 @@ void SeerGdbWidget::handleGdbAttachExecutable () {
|
||||
handleGdbExecutableName(); // Load the program into the gdb process.
|
||||
handleGdbExecutableSources(); // Load the program source files.
|
||||
handleGdbExecutableWorkingDirectory(); // Set the program's working directory before running.
|
||||
//
|
||||
handleGdbAssemblyDisassemblyFlavor(); // Set the disassembly flavor to use.
|
||||
handleGdbAssemblySymbolDemangling(); // Set the symbol demangling.
|
||||
|
||||
if (assemblyShowAssemblyTabOnStartup()) {
|
||||
editorManager()->showAssembly();
|
||||
}
|
||||
@@ -847,6 +854,8 @@ void SeerGdbWidget::handleGdbConnectExecutable () {
|
||||
if (newExecutableFlag() == true) {
|
||||
handleGdbExecutableName(); // Load the program into the gdb process.
|
||||
handleGdbExecutableSources(); // Load the program source files.
|
||||
handleGdbAssemblyDisassemblyFlavor(); // Set the disassembly flavor to use.
|
||||
handleGdbAssemblySymbolDemangling(); // Set the symbol demangling.
|
||||
|
||||
if (assemblyShowAssemblyTabOnStartup()) {
|
||||
editorManager()->showAssembly();
|
||||
@@ -930,6 +939,8 @@ void SeerGdbWidget::handleGdbCoreFileExecutable () {
|
||||
if (newExecutableFlag() == true) {
|
||||
handleGdbExecutableName(); // Load the program into the gdb process.
|
||||
handleGdbExecutableSources(); // Load the program source files.
|
||||
handleGdbAssemblyDisassemblyFlavor(); // Set the disassembly flavor to use.
|
||||
handleGdbAssemblySymbolDemangling(); // Set the symbol demangling.
|
||||
|
||||
if (assemblyShowAssemblyTabOnStartup()) {
|
||||
editorManager()->showAssembly();
|
||||
@@ -1831,6 +1842,20 @@ void SeerGdbWidget::handleGdbSaveBreakpoints () {
|
||||
QMessageBox::information(this, "Seer", "Saved.");
|
||||
}
|
||||
|
||||
void SeerGdbWidget::handleGdbAssemblyDisassemblyFlavor () {
|
||||
|
||||
if (_assemblyDisassemblyFlavor != "") {
|
||||
handleGdbCommand(QString("set disassembly-flavor ") + _assemblyDisassemblyFlavor);
|
||||
}
|
||||
}
|
||||
|
||||
void SeerGdbWidget::handleGdbAssemblySymbolDemangling () {
|
||||
|
||||
if (_assemblySymbolDemangling != "") {
|
||||
handleGdbCommand(QString("set print asm-demangle ") + _assemblySymbolDemangling);
|
||||
}
|
||||
}
|
||||
|
||||
void SeerGdbWidget::handleGdbProcessFinished (int exitCode, QProcess::ExitStatus exitStatus) {
|
||||
|
||||
//qDebug() << "Gdb process finished. Exit code =" << exitCode << "Exit status =" << exitStatus;
|
||||
@@ -1900,9 +1925,11 @@ void SeerGdbWidget::writeSettings () {
|
||||
} settings.endArray();
|
||||
|
||||
settings.beginGroup("assembly"); {
|
||||
settings.setValue("showassemblytabonstartup", assemblyShowAssemblyTabOnStartup());
|
||||
settings.setValue("keepassemblytabontop", assemblyKeepAssemblyTabOnTop());
|
||||
settings.setValue("assemblyregisterformat", assemblyRegisterFormat());
|
||||
settings.setValue("showassemblytabonstartup", assemblyShowAssemblyTabOnStartup());
|
||||
settings.setValue("keepassemblytabontop", assemblyKeepAssemblyTabOnTop());
|
||||
settings.setValue("assemblydisassemblyflavor", assemblyDisassembyFlavor());
|
||||
settings.setValue("assemblysymboldemagling", assemblySymbolDemagling());
|
||||
settings.setValue("assemblyregisterformat", assemblyRegisterFormat());
|
||||
} settings.endGroup();
|
||||
|
||||
settings.beginGroup("gdboutputlog"); {
|
||||
@@ -1960,6 +1987,8 @@ void SeerGdbWidget::readSettings () {
|
||||
settings.beginGroup("assembly"); {
|
||||
setAssemblyShowAssemblyTabOnStartup(settings.value("showassemblytabonstartup", false).toBool());
|
||||
setAssemblyKeepAssemblyTabOnTop(settings.value("keepassemblytabontop", true).toBool());
|
||||
setAssemblyDisassembyFlavor(settings.value("assemblydisassemblyflavor", "att").toString());
|
||||
setAssemblySymbolDemagling(settings.value("assemblysymboldemagling", "on").toString());
|
||||
setAssemblyRegisterFormat(settings.value("assemblyregisterformat", "Natural").toString());
|
||||
} settings.endGroup();
|
||||
|
||||
@@ -2208,15 +2237,31 @@ bool SeerGdbWidget::assemblyKeepAssemblyTabOnTop () const {
|
||||
}
|
||||
|
||||
void SeerGdbWidget::setAssemblyDisassembyFlavor (const QString& flavor) {
|
||||
|
||||
_assemblyDisassemblyFlavor = flavor;
|
||||
|
||||
if (isGdbRuning()) {
|
||||
handleGdbAssemblyDisassemblyFlavor();
|
||||
}
|
||||
}
|
||||
|
||||
QString SeerGdbWidget::assemblyDisassembyFlavor () const {
|
||||
|
||||
return _assemblyDisassemblyFlavor;
|
||||
}
|
||||
|
||||
void SeerGdbWidget::setAssemblySymbolDemagling (const QString& yesno) {
|
||||
void SeerGdbWidget::setAssemblySymbolDemagling (const QString& onoff) {
|
||||
|
||||
_assemblySymbolDemangling = onoff;
|
||||
|
||||
if (isGdbRuning()) {
|
||||
handleGdbAssemblySymbolDemangling();
|
||||
}
|
||||
}
|
||||
|
||||
QString SeerGdbWidget::assemblySymbolDemagling () const {
|
||||
|
||||
return _assemblySymbolDemangling;
|
||||
}
|
||||
|
||||
void SeerGdbWidget::setAssemblyRegisterFormat (const QString& format) {
|
||||
|
||||
+5
-1
@@ -106,7 +106,7 @@ class SeerGdbWidget : public QWidget, protected Ui::SeerGdbWidgetForm {
|
||||
void setAssemblyDisassembyFlavor (const QString& flavor);
|
||||
QString assemblyDisassembyFlavor () const;
|
||||
|
||||
void setAssemblySymbolDemagling (const QString& yesno);
|
||||
void setAssemblySymbolDemagling (const QString& onoff);
|
||||
QString assemblySymbolDemagling () const;
|
||||
|
||||
void setAssemblyRegisterFormat (const QString& format);
|
||||
@@ -213,6 +213,8 @@ class SeerGdbWidget : public QWidget, protected Ui::SeerGdbWidgetForm {
|
||||
void handleLogOuputChanged ();
|
||||
void handleGdbLoadBreakpoints ();
|
||||
void handleGdbSaveBreakpoints ();
|
||||
void handleGdbAssemblyDisassemblyFlavor ();
|
||||
void handleGdbAssemblySymbolDemangling ();
|
||||
|
||||
void handleGdbProcessFinished (int exitCode, QProcess::ExitStatus exitStatus);
|
||||
void handleGdbProcessErrored (QProcess::ProcessError errorStatus);
|
||||
@@ -241,6 +243,8 @@ class SeerGdbWidget : public QWidget, protected Ui::SeerGdbWidgetForm {
|
||||
QString _dprintfFunction;
|
||||
QString _dprintfChannel;
|
||||
bool _assemblyShowAssemblyTabOnStartup;
|
||||
QString _assemblyDisassemblyFlavor;
|
||||
QString _assemblySymbolDemangling;
|
||||
QString _assemblyRegisterFormat;
|
||||
|
||||
QString _executableName;
|
||||
|
||||
@@ -374,6 +374,8 @@ void SeerMainWindow::handleSettingsConfiguration () {
|
||||
dlg.setSourceAlternateDirectories(gdbWidget->sourceAlternateDirectories());
|
||||
dlg.setAssemblyShowAssemblyTabOnStartup(gdbWidget->assemblyShowAssemblyTabOnStartup());
|
||||
dlg.setAssemblyKeepAssemblyTabOnTop(gdbWidget->assemblyKeepAssemblyTabOnTop());
|
||||
dlg.setAssemblyDisassembyFlavor(gdbWidget->assemblyDisassembyFlavor());
|
||||
dlg.setAssemblySymbolDemagling(gdbWidget->assemblySymbolDemagling());
|
||||
dlg.setAssemblyRegisterFormat(gdbWidget->assemblyRegisterFormat());
|
||||
dlg.setSeerConsoleMode(gdbWidget->consoleMode());
|
||||
dlg.setSeerConsoleScrollLines(gdbWidget->consoleScrollLines());
|
||||
@@ -400,6 +402,8 @@ void SeerMainWindow::handleSettingsConfiguration () {
|
||||
gdbWidget->setSourceAlternateDirectories(dlg.sourceAlternateDirectories());
|
||||
gdbWidget->setAssemblyShowAssemblyTabOnStartup(dlg.assemblyShowAssemblyTabOnStartup());
|
||||
gdbWidget->setAssemblyKeepAssemblyTabOnTop(dlg.assemblyKeepAssemblyTabOnTop());
|
||||
gdbWidget->setAssemblyDisassembyFlavor(dlg.assemblyDisassembyFlavor());
|
||||
gdbWidget->setAssemblySymbolDemagling(dlg.assemblySymbolDemagling());
|
||||
gdbWidget->setAssemblyRegisterFormat(dlg.assemblyRegisterFormat());
|
||||
gdbWidget->setConsoleMode(dlg.seerConsoleMode());
|
||||
gdbWidget->setConsoleScrollLines(dlg.seerConsoleScrollLines());
|
||||
|
||||
Reference in New Issue
Block a user