Hi Yao, >> - if (alignlen & 0x4) >> - stack_dest -= 4; >> + stack_dest = (stack_dest + 7) & ~0x7; > > Your can use function 'align_up'. fixed, and I do make a mistake here, should be align_down. >> /* Now write data to the stack. The stack grows downwards. */ >> stack_dest -= typelen + slacklen; >> write_memory (stack_dest, val, typelen + slacklen); >> - do_cleanups (back_to); > > alloca is unsafe, and we prefer to use xmalloc/cleanup+xfree. fixed. >> + if (status == 0) { >> + /* fix gdb.base/gdb1250 >> + * breakpoint is set before dynamic library loaded, thus >> gdb >> + * does a partial symbol name finding and sets the >> breakpoint >> + * in the plt stub. our 32-bundle prefetch window is too >> large >> + * for this situation to cause a memory access error. >> + * For plt stub, we just need to return directly. >> + * >> + * x86 does not have this problem, because the first >> instruction >> + * in their plt stub is jump, which ends the analysis also. >> + */ > > The comment style is not gnu style. fixed the comment style. > The problems looks about plt. I find tilegx port doesn't have a plt > stub unwinder. I am not sure creating a plt stub unwinder can fix > this problem, I am not quite understand the usage of plt stub unwinder here. i386 do not append plt stub unwinder also. from my understanding, those plt stub can be unwinded as normal frame, like a leaf function, or have I misunderstood something? > but it should fix other fails in testsuite. the left failures are mostly about type print issues under gdb.cp and gdb.python attachment is the patch to fix above problems thanks for feedback --- Regards, Jiong. Wang Tilera Corporation -- Regards, Salad office: +86-010-82825915, ext:653 cell: +86-13810021970