This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: [PING2] : [RFC/RFA] PING: skip __main


Here are the results:

                === gdb Summary ===

! # of expected passes          10756
! # of unexpected failures      570
  # of expected failures                59
  # of unknown successes                2
! # of known failures           22
! # of unresolved testcases     41
  # of untested testcases               14
  # of unsupported tests                23
  /usr/local/src/gdbcvs/build-bare/gdb/testsuite/../../gdb/gdb version
6.8.50.2
0080530-cvs -nx
--- 12110,12121 ----

                === gdb Summary ===

! # of expected passes          10952
! # of unexpected failures      386
  # of expected failures                59
  # of unknown successes                2
! # of known failures           23
! # of unresolved testcases     42
  # of untested testcases               14
  # of unsupported tests                23
  /usr/local/src/gdbcvs/build-bare/gdb/testsuite/../../gdb/gdb version
6.8.50.2
0080530-cvs -nx

 I looked into the additional KFAIL,
but it is a FAIL to KFAIL change.


 I also ran the same but using extract_unsigned_integer,
but as expected, the only difference I saw (gdb.cp/hang.exp
two unresolved more, two passes less) were not reproducible
(running the same tests again individually gave the same
results for signed and unsigned version.)

  As the --enable-target=all --enable-64bit-bfd is
still broken, I could not really test the 64bit CORE_ADDR
issue. Even if I could generate such an executable,
I don't know how to force the __main to be at 
a higher address that main (it seems like
the object file containing main function is always
loaded first). 

  Should I use the 32bit typecast strategy:

unsigned int32 pc_after = pc + 5; 
unsigned int32 depl = extract_unsigned_integer (buf, 4);
   
unsigned int32 dest = pc_after - depl;
pc = dest;

I don't know the checks done in C,
are there any overflow checks in code like this,
or is it safe to assume that it will work,
even on machine that perform their operations
on more than 32 bits?

Pierre Muller
Pascal language support maintainer for GDB



-----Message d'origine-----
De?: Mark Kettenis [mailto:mark.kettenis@xs4all.nl] 
Envoyé?: Friday, May 30, 2008 4:58 PM
À?: muller@ics.u-strasbg.fr
Cc?: pedro@codesourcery.com; drow@false.org; gdb-patches@sourceware.org
Objet?: Re: [PING2] : [RFC/RFA] PING: skip __main

> From: "Pierre Muller" <muller@ics.u-strasbg.fr>
> Date: Fri, 30 May 2008 16:46:28 +0200
> 
> +  target_read_memory (pc, &op, 1);
> +  if (op == 0xe8)
> +    {
> +      gdb_byte buf[4];
> +
> +      if (target_read_memory (pc + 1, buf, sizeof buf) == 0)
> +       {
> +         CORE_ADDR call_dest = pc + 5 + extract_unsigned_integer (buf,
4);
>   Just one small question about this line:
> I fear that this line is incorrect,
> shouldn't we use extract_signed_integer here?
> 
>   The address is relative to pc+5 meaning that
> if main is at a higher address than __main,
> buf will contain a negative 4byte integer.

You're absolutely right.  Can you make that change and retest?




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]