]> git.ipfire.org Git - thirdparty/gcc.git/commit
[Ada] Fix __gnat_backtrace for VxWorks7 on x86
authorpmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 May 2018 10:47:08 +0000 (10:47 +0000)
committerpmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 May 2018 10:47:08 +0000 (10:47 +0000)
commit5283dddc621cd41b6d1bccbc499c6b62e1b72ac1
tree74fd38f91d3b24c2cd96bdde7db74f0ab08b9e44
parent105fa703a04b7e825eb6d14079c7fa1666072cc1
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@261010 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ada/ChangeLog
gcc/ada/tracebak.c