[Ada] Fix __gnat_backtrace for VxWorks7 on x86
authorFrederic Konrad <konrad@adacore.com>
Thu, 31 May 2018 10:47:08 +0000 (10:47 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 31 May 2018 10:47:08 +0000 (10:47 +0000)
commitfe1db400ad466c7c62a37d89f51ee4474bdba214
tree74fd38f91d3b24c2cd96bdde7db74f0ab08b9e44
parent6ae40af30c0d2db1fe3d9610ade37004ee0c1d38
[Ada] Fix __gnat_backtrace for VxWorks7 on x86

A STORAGE ERROR is raised in __gnat_backtrace:

adainit: 0x00400DBC

Execution of ce.vxe terminated by unhandled exception
raised STORAGE_ERROR : SIGSEGV: possible stack overflow
Call stack traceback locations:
0x4082f1 0x408323 0x4080c9

It was passing with vxsim because the WRS_RTP_BASE is set to a different
place hence the (CURRENT) < (TOP_STACK) was stopping the backtrace at the
right time. So let's stop at the main symbol when RTS=rtp.

2018-05-31  Frederic Konrad  <konrad@adacore.com>

gcc/ada/

* tracebak.c (STOP_FRAME): Harden condition.
(is_return_from, EXTRA_STOP_CONDITION): New helpers for VxWorks in RTP
mode.

From-SVN: r261010
gcc/ada/ChangeLog
gcc/ada/tracebak.c