Files
ftmemsim-valgrind/coregrind/m_aspacemgr
Philippe Waroquiers 2d3d477689 Fix or implement various things to have V gdbsrv working on arm64
* better handle error recovery when calling remote_desc_activity
  (avoid exhausting safe fd range)
* fix small error in m_gdbserver/README_DEVELOPERS
* implemented mknod and poll syscall on mknodat and ppoll
  (mknod and poll are not directly supported on arm64)
* implement or fix various gdbsrv specific things needed for arm64
* changed assert condition in aspacemgr to VKI_SHMLBA >= VKI_PAGE_SIZE

With these changes, gdbserver integration seems to be basically working.
However, when breakpoints are placed or removed, discard_translations
causes an assert as the unchain has not been implemented yet for arm64 :

    --1118:1:gdbsrv   remove software_breakpoint at addr 0x400DE74 0x400DE74: _dl_debug_state (in /usr/lib64/ld-2.17.so)
    --1118:2:transtab   discard_translations(0x400de74, 2) req by m_gdbserver breakpoint remove
    --1118:2:transtab                       FAST, ec = 27

    vex: priv/main_main.c:1070 (LibVEX_UnChain): Assertion `0' failed.
    vex storage: T total 5480544 bytes allocated
    vex storage: P total 0 bytes allocated

    valgrind: the 'impossible' happened:
       LibVEX called failure_exit().
    ==1118==    at 0x3809E6B8: ??? (in /home/philippe/crossaarch64/trunk/Inst/lib/valgrind/none-arm64-linux)

    sched status:
      running_tid=1

What remains to be done:
  * arm64 xml register description files (allowing shadow registers to be looked at).
  * ptrace invoker : currently disabled for both arm and arm64
  * cpsr transfer to/from gdb to be looked at (see also arm equivalent code)




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13800
2014-02-11 23:50:16 +00:00
..