1 ## @file 2 # GDB startup script 3 # 4 # Copyright (c) 2011, Intel Corporation. All rights reserved.<BR> 5 # 6 # This program and the accompanying materials 7 # are licensed and made available under the terms and conditions of the BSD License 8 # which accompanies this distribution. The full text of the license may be found at 9 # http://opensource.org/licenses/bsd-license.php 10 # 11 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 # 14 ## 15 16 # 17 # Gdb will set $_exitcode when the program exits. Pre-init it to an unlikely 18 # return value. 19 # 20 set $_exitcode = 42 21 22 # 23 # Gdb will call hook-stop on each break. Check to see if $_exitcode was 24 # changed from the value we pre-initialized it to. If so, the program 25 # had exited, so gdb should now quit. 26 # 27 define hook-stop 28 if $_exitcode != 42 29 quit 30 else 31 source Host.gdb 32 end 33 end 34 35 # 36 # We keep track of the number of symbol files we have loaded via gdb 37 # scripts in the $SymbolFilesAdded variable 38 # 39 set $SymbolFileChangesCount = 0 40 41 # 42 # This macro adds a symbols file for gdb 43 # 44 # @param $arg0 - Symbol file changes number 45 # @param $arg1 - Symbol file name 46 # @param $arg2 - Image address 47 # 48 define AddFirmwareSymbolFile 49 if $SymbolFileChangesCount < $arg0 50 add-symbol-file $arg1 $arg2 51 set $SymbolFileChangesCount = $arg0 52 end 53 end 54 55 # 56 # This macro removes a symbols file for gdb 57 # 58 # @param $arg0 - Symbol file changes number 59 # @param $arg1 - Symbol file name 60 # 61 define RemoveFirmwareSymbolFile 62 if $SymbolFileChangesCount < $arg0 63 # 64 # Currently there is not a method to remove a single symbol file 65 # 66 set $SymbolFileChangesCount = $arg0 67 end 68 end 69 70 if gInXcode == 1 71 # in Xcode the program is already runing. Issuing a run command 72 # will cause a fatal debugger error. The break point sciprt that 73 # is used to source this script sets gInCode to 1. 74 else 75 # 76 # Start the program running 77 # 78 run 79 end 80