# Copyright (C) 2021-2024 Advanced Micro Devices, Inc. All rights reserved. # This file is part of GDB. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this- program. If not, see . # When stopped at /* break here */, GDB would fail to unwind the stack due to # the way the PC register was saved. load_lib rocm.exp require allow_hip_tests standard_testfile .cpp if {[build_executable "failed to prepare ${testfile}" $testfile $srcfile {debug hip}]} { return -1 } with_rocm_gpu_lock { clean_restart $::binfile if { ![runto_main] } { fail "could not run to main" return } set line [gdb_get_line_number "break here"] gdb_breakpoint "$line" allow-pending gdb_test "continue" "Thread $decimal \"hip_deep\" hit Breakpoint $decimal.*" gdb_test "backtrace" \ [multi_line \ "#0 +(($hex in )?base_case) .*" \ "#1 +(($hex in )?deep<0u>) .*" \ "#2 +(($hex in )?deep<1u>) .*" \ "#3 +(($hex in )?deep<2u>) .*" \ "#4 +(($hex in )?deep<3u>) .*" \ "#5 +(($hex in )?deep<4u>) .*" \ "#6 +(($hex in )?deep<5u>) .*" \ "#7 +(($hex in )?deep<6u>) .*" \ "#8 +(($hex in )?deep<7u>) .*" \ "#9 +(($hex in )?deep<8u>) .*" \ "#10 +(($hex in )?deep<9u>) .*" \ "#11 +(($hex in )?deep<10u>) .*" \ "#12 +(($hex in )?hip_deep) .*"] }