summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2010-03-01 13:22:30 +0100
committerhjk <qtc-committer@nokia.com>2010-03-02 09:44:35 +0100
commite5100daa46ddd08ecbe53c8744e78e67080c40a7 (patch)
tree463ce3f2ce07f2256cff3c91a1bda43dc8f93f79 /share
parentb8b08bcc9b796476e6d8c7e6034d1d0e56a56783 (diff)
downloadqt-creator-e5100daa46ddd08ecbe53c8744e78e67080c40a7.tar.gz
Add local gdb patches.
Diffstat (limited to 'share')
-rw-r--r--share/qtcreator/patches/gdb-without-dwarf-name-canonicalization.patch19
-rw-r--r--share/qtcreator/patches/gdb-work-around-trk-single-step.patch23
2 files changed, 42 insertions, 0 deletions
diff --git a/share/qtcreator/patches/gdb-without-dwarf-name-canonicalization.patch b/share/qtcreator/patches/gdb-without-dwarf-name-canonicalization.patch
new file mode 100644
index 0000000000..a762d77b8c
--- /dev/null
+++ b/share/qtcreator/patches/gdb-without-dwarf-name-canonicalization.patch
@@ -0,0 +1,19 @@
+
+This shortcuts the canonicalization of symbol names. This is likely to
+introduce regressions for setting breakpoints by function names (which
+is rarely used by IDE users) but speeds up startup by around 15% for a
+typical Qt application. So disabling it seems to be a good compromise.
+
+diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
+index a05c946..761fa34 100644
+--- a/gdb/dwarf2read.c
++++ b/gdb/dwarf2read.c
+@@ -9097,7 +9097,7 @@ static char *
+ dwarf2_canonicalize_name (char *name, struct dwarf2_cu *cu,
+ struct obstack *obstack)
+ {
+- if (name && cu->language == language_cplus)
++ if (0 && name && cu->language == language_cplus)
+ {
+ char *canon_name = cp_canonicalize_string (name);
+
diff --git a/share/qtcreator/patches/gdb-work-around-trk-single-step.patch b/share/qtcreator/patches/gdb-work-around-trk-single-step.patch
new file mode 100644
index 0000000000..bd330526cb
--- /dev/null
+++ b/share/qtcreator/patches/gdb-work-around-trk-single-step.patch
@@ -0,0 +1,23 @@
+
+NOTE: Apply to --target=arm-none-symbianelf builds only.
+
+This works around the problem of TRK overshooting line-wise stepping by a few
+instructions. This is not a gdb problem, but a TRK problem, but currently
+easier to workaround on the gdb side. It's sufficient to apply for the
+arm-none-symbianelf targeted gdbs only as TRK is the only probe known to have
+this problem.
+
+--- a/gdb/infrun.c
++++ b/gdb/infrun.c
+@@ -4754,9 +4754,9 @@ infrun: not switching back to stepped thread, it has vanished\n");
+ return;
+ }
+
+- if ((stop_pc == stop_pc_sal.pc)
++ if (1 /* (stop_pc == stop_pc_sal.pc)
+ && (ecs->event_thread->current_line != stop_pc_sal.line
+- || ecs->event_thread->current_symtab != stop_pc_sal.symtab))
++ || ecs->event_thread->current_symtab != stop_pc_sal.symtab) */)
+ {
+ /* We are at the start of a different line. So stop. Note that
+ we don't stop if we step into the middle of a different line.