This may be partially resolved by the reintroduction of the patch in bug 1233185. The initial Stacktrace still ends in a corrupt stack but the non-multiarch version of gdb is able to produce a more useful Stacktrace and a StacktraceAddressSignature when retracing the crash. For example, with the gnome calculator crash from apport test crashes we can see the following differences.
Stacktrace:
#0 0x4081ed22 in poll () from /lib/arm-linux-gnueabihf/libc.so.6
No symbol table info available.
#1 0x4067c4e6 in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
After retracing:
Stacktrace:
#0 0x4081ed22 in poll () at ../sysdeps/unix/syscall-template.S:81
No locals.
#1 0x4067c4e6 in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x41400c68, timeout=-1, context=0xd00d0) at /build/buildd/glib2.0-2.40.0/./glib/gmain.c:4028
poll_func = 0x406862a5 <g_poll>
#2 g_main_context_iterate (context=context@entry=0xd00d0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/buildd/glib2.0-2.40.0/./glib/gmain.c:3729 max_priority = 2147483647
timeout = -1
some_ready = <optimized out>
nfds = 1 allocated_nfds = <optimized out>
fds = 0x41400c68
#3 0x4067c588 in g_main_context_iteration (context=context@entry=0xd00d0, may_block=may_block@entry=1) at /build/buildd/glib2.0-2.40.0/./glib/gmain.c:3795
retval = <optimized out>
#4 0x410c1cd0 in dconf_gdbus_worker_thread (user_data=0xd00d0) at dconf-gdbus-thread.c:82
context = 0xd00d0
#5 0x40695eea in g_thread_proxy (data=0x9db80) at /build/buildd/glib2.0-2.40.0/./glib/gthread.c:764
thread = 0x9db80
#6 0x4077efbc in start_thread (arg=0x413ff2d0) at pthread_create.c:314
pd = 0x413ff2d0
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1094710504, 1094709968, 1, 1094708424, 1094708752, 1081684380, 1094710532, -1090523248, 220780268, 207672765, 0 <repeats 54 times>}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 pagesize_m1 = <optimized out>
sp = <optimized out>
freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread"
#7 0x40827b3c in ?? () at ../ports/sysdeps/unix/sysv/linux/arm/nptl/../clone.S:92 from /srv/daisy.staging.ubuntu.com/production/cache/Ubuntu 14.04/cache-DhmXbj/sandbox/lib/arm-linux-gnueabihf/libc.so.6
No locals.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
This may be partially resolved by the reintroduction of the patch in bug 1233185. The initial Stacktrace still ends in a corrupt stack but the non-multiarch version of gdb is able to produce a more useful Stacktrace and a StacktraceAddre ssSignature when retracing the crash. For example, with the gnome calculator crash from apport test crashes we can see the following differences.
Stacktrace: linux-gnueabihf /libc.so. 6 linux-gnueabihf /libglib- 2.0.so. 0
#0 0x4081ed22 in poll () from /lib/arm-
No symbol table info available.
#1 0x4067c4e6 in ?? () from /lib/arm-
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
After retracing:
Stacktrace: unix/syscall- template. S:81 2147483647, n_fds=1, fds=0x41400c68, timeout=-1, context=0xd00d0) at /build/ buildd/ glib2.0- 2.40.0/ ./glib/ gmain.c: 4028 context_ iterate (context= context@ entry=0xd00d0, block=block@ entry=1, dispatch= dispatch@ entry=1, self=<optimized out>) at /build/ buildd/ glib2.0- 2.40.0/ ./glib/ gmain.c: 3729
max_priority = 2147483647
allocated_ nfds = <optimized out> context_ iteration (context= context@ entry=0xd00d0, may_block= may_block@ entry=1) at /build/ buildd/ glib2.0- 2.40.0/ ./glib/ gmain.c: 3795 worker_ thread (user_data=0xd00d0) at dconf-gdbus- thread. c:82 buildd/ glib2.0- 2.40.0/ ./glib/ gthread. c:764 create. c:314
not_first_ call = 0
pagesize_ m1 = <optimized out>
__PRETTY_ FUNCTION_ _ = "start_thread" sysdeps/ unix/sysv/ linux/arm/ nptl/.. /clone. S:92 from /srv/daisy. staging. ubuntu. com/production/ cache/Ubuntu 14.04/cache- DhmXbj/ sandbox/ lib/arm- linux-gnueabihf /libc.so. 6
#0 0x4081ed22 in poll () at ../sysdeps/
No locals.
#1 0x4067c4e6 in g_main_context_poll (priority=
poll_func = 0x406862a5 <g_poll>
#2 g_main_
timeout = -1
some_ready = <optimized out>
nfds = 1
fds = 0x41400c68
#3 0x4067c588 in g_main_
retval = <optimized out>
#4 0x410c1cd0 in dconf_gdbus_
context = 0xd00d0
#5 0x40695eea in g_thread_proxy (data=0x9db80) at /build/
thread = 0x9db80
#6 0x4077efbc in start_thread (arg=0x413ff2d0) at pthread_
pd = 0x413ff2d0
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1094710504, 1094709968, 1, 1094708424, 1094708752, 1081684380, 1094710532, -1090523248, 220780268, 207672765, 0 <repeats 54 times>}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
sp = <optimized out>
freesize = <optimized out>
#7 0x40827b3c in ?? () at ../ports/
No locals.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)