Home | History | Annotate | Download | only in Unix
      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