[glib] tests: Work around a gdb bug in assert-msg-test
- From: Philip Withnall <pwithnall src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] tests: Work around a gdb bug in assert-msg-test
- Date: Mon, 27 Nov 2017 11:44:23 +0000 (UTC)
commit 82adf7b5da71f44322139f109a3a39455432a961
Author: Philip Withnall <withnall endlessm com>
Date: Mon Nov 27 11:29:15 2017 +0000
tests: Work around a gdb bug in assert-msg-test
It seems that when GLib is compiled without CFLAGS=-g, gdb can’t work
out the size of __glib_assert_msg, so assumes it’s 4 bytes — even on
64-bit systems. This causes it to not read the most significant 4 bytes
of the assertion message pointer, and hence it can’t print the stored
assertion message. This causes assert-msg-test to fail.
The upstream gdb bug is
https://sourceware.org/bugzilla/show_bug.cgi?id=22501.
Work around that by referencing and dereferencing __glib_assert_msg so
that gdb treats it as a pointer of sizeof(char*) rather than of the size
it incorrectly calculated from the library’s symbol table (or through
some other mystical process).
Signed-off-by: Philip Withnall <withnall endlessm com>
https://bugzilla.gnome.org/show_bug.cgi?id=782057
tests/assert-msg-test.gdb | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
---
diff --git a/tests/assert-msg-test.gdb b/tests/assert-msg-test.gdb
index 63a2541..dbecaaf 100644
--- a/tests/assert-msg-test.gdb
+++ b/tests/assert-msg-test.gdb
@@ -1,4 +1,5 @@
run
set print elements 0
-print (char*) __glib_assert_msg
+# Work around https://sourceware.org/bugzilla/show_bug.cgi?id=22501
+print *((char**) &__glib_assert_msg)
quit
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]