|
From: Julian S. <js...@ac...> - 2007-11-08 01:15:04
|
It's a bug in vg_SP_update_pass in coregrind/m_translate.c. That
function analyses changes to the stack pointer in support of tools
like memcheck that want to know about such changes. Anyway, most
likely it has never before encountered anything as bizarre as
pushing/popping stuff on the stack whilst only changing the lower
half of %esp (like .. why?), and it has produced a bogus piece of
instrumentation code as a result.
Could you file a bug report so this gets tracked? I suspect you
can repro this using a trivial test case which does
"subw $0x28, %sp". Perhaps
int main ( void ) {
__asm__ __volatile__( "subw $0x28, %sp\n"
"movl $0, 0(%esp)\n"
"addw $0x28, %sp" : : : "memory" );
}
J
|