[Ltrace-devel] dwarf.exp test failures

Thierry Fauck@linux.vnet.ibm.com thierry at linux.vnet.ibm.com
Thu Mar 24 16:16:00 UTC 2016


Hello,
Is someone checking the testsuite code for dwarfm.exp test ?
Here are the changes I suspect could be made ... if someone can validate
or comment on other arch that would be great !
diff --git a/testsuite/ltrace.main/dwarf.exp
b/testsuite/ltrace.main/dwarf.exp
index 0c8611c..b80c148 100644
--- a/testsuite/ltrace.main/dwarf.exp
+++ b/testsuite/ltrace.main/dwarf.exp
@@ -50,9 +50,9 @@ set ltrace_opts_l {"-A5" "-l" "libdwarftest.so"}
 set ref_output_l [subst -nocommands -novariables {
 dwarf->linkedlisttest({ 5, nil }) * = <void>
 dwarf->treetest({ 1, { 2, nil, nil }, { 3, nil, { 4, nil, nil } } }
<unfinished ...>
-libdwarftest.so->treetest({ 2, nil, nil }) * = nil
+libdwarftest.so->treetest({ 2, nil, nil }) * = { 2, nil, nil }
 libdwarftest.so->treetest({ 3, nil, { 4, nil, nil } } <unfinished ...>
-libdwarftest.so->treetest({ 4, nil, nil }) * = nil
+libdwarftest.so->treetest({ 4, nil, nil }) * = { 4, nil, nil }
 <... treetest resumed> ) * = { 5, nil, nil }
 <... treetest resumed> ) * = { 2, { 3, nil, nil }, { 4, nil, { 5, nil,
nil } } }
 dwarf->looptest({ { recurse^, 6 }, 5 }) * = <void>
@@ -81,12 +81,7 @@ run_dwarf_test $ref_output_demangling
$ltrace_opts_demangling
 set ltrace_opts_x {"-A5" "-L" "-x" "@libdwarftest.so"}
 set ref_output_x [subst -nocommands -novariables {
 linkedlisttest at libdwarftest.so({ 5, nil }) * = <void>
-treetest at libdwarftest.so({ 1, { 2, nil, nil }, { 3, nil, { 4, nil, nil
} } } <unfinished ...>
-treetest at libdwarftest.so({ 2, nil, nil }) * = nil
-treetest at libdwarftest.so({ 3, nil, { 4, nil, nil } } <unfinished ...>
-treetest at libdwarftest.so({ 4, nil, nil }) * = nil
-<... treetest resumed> ) * = { 5, nil, nil }
-<... treetest resumed> ) * = { 2, { 3, nil, nil }, { 4, nil, { 5, nil,
nil } } }
+treetest at libdwarftest.so({ 1, { 2, nil, nil }, { 3, nil, { 4, nil, nil
} } }) = { 2, { 3, nil, nil }, { 4, nil, { 5, nil, nil } } }
 looptest at libdwarftest.so({ { recurse^, 6 }, 5 }) * = <void>
 enumtest at libdwarftest.so(A, B) * = 0
 arraytest at libdwarftest.so(.* 1.000000, 2.000000, 1.000000, 2.000000,
1.000000 [^\\\.*]* * = 1.000000
@@ -104,9 +99,9 @@ run_dwarf_test $ref_output_x $ltrace_opts_x
 
 set ltrace_opts_e {"-A5" "-e" "@libdwarftest.so"}
 set ref_output_e [subst -nocommands -novariables {
-libdwarftest.so->treetest({ 2, nil, nil }) * = nil
+libdwarftest.so->treetest({ 2, nil, nil }) * = { 2, nil, nil }
 libdwarftest.so->treetest({ 3, nil, { 4, nil, nil } } <unfinished ...>
-libdwarftest.so->treetest({ 4, nil, nil }) * = nil
+libdwarftest.so->treetest({ 4, nil, nil }) * = { 4, nil, nil }
 <... treetest resumed> ) * = { 5, nil, nil }
 libdwarftest.so->_Z3f127Colors2(GREEN2) * = RED1
 libdwarftest.so->_Z3f347Colors4(BLUE4) * = RED3
@@ -117,7 +112,7 @@ run_dwarf_test $ref_output_e $ltrace_opts_e
 set ltrace_opts_e {"-l" "libc.so*"}
 set ref_output_e [subst -nocommands -novariables {
 libdwarftest.so->ftell(0x[0-9a-z]*) * = -1
-libdwarftest.so->strlen('t') * = 4
+libdwarftest.so->strlen('t' <unfinished ...>
 dwarf->usleep(33) * = 0
 dwarf->nanosleep({ 0, 44 }, nil) * = 0
 } ]
@@ -127,9 +122,7 @@ set ltrace_opts_e {"-L" "-x"
"@libc.so*-__nanosleep_nocancel at libc.so.6"}
 set ref_output_e [subst -nocommands -novariables {
 ftell at libc.so.6(0x[0-9a-z]*
 strlen at libc.so.6('t') * = 4
-usleep at libc.so.6(33 <unfinished ...>
-nanosleep at libc.so.6({ 0, 33000 }, nil) * = 0
-<... usleep resumed> ) * = 0
+usleep at libc.so.6(33) * = 0
 nanosleep at libc.so.6({ 0, 44 }, nil) * = 0
 } ]
 run_dwarf_test $ref_output_e $ltrace_opts_e



On 24/03/2016 17:10, thierry at linux.vnet.ibm.com wrote:
> From: Thierry Fauck <tfauck at free.fr>
>
> Signed-off-by: Thierry Fauck <tfauck at free.fr>
>
> 	modified:   sysdeps/linux-gnu/ppc/fetch.c
> ---
>  sysdeps/linux-gnu/ppc/fetch.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/sysdeps/linux-gnu/ppc/fetch.c b/sysdeps/linux-gnu/ppc/fetch.c
> index e4045a0..860cb86 100644
> --- a/sysdeps/linux-gnu/ppc/fetch.c
> +++ b/sysdeps/linux-gnu/ppc/fetch.c
> @@ -609,7 +609,11 @@ arch_fetch_retval(struct fetch_context *ctx, enum tof type,
>  	if (ctx->ret_struct) {
>  		assert(info->type == ARGTYPE_STRUCT);
>
> -		uint64_t addr = read_gpr(ctx, proc, 3);
> +		uint64_t addr;
> +		if ( ctx->regs.r32[1] == 0 )
> +                        addr = read_gpr(ctx, proc, 3);
> +                else
> +                        addr = read_gpr(ctx, proc, 4);
>  		value_init(valuep, proc, NULL, info, 0);
>
>  		valuep->where = VAL_LOC_INFERIOR;


-- 
Thierry Fauck @ linux.vnet.ibm




More information about the Ltrace-devel mailing list