40 lines
1.1 KiB
Bash
Executable File
40 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
##########################################################################
|
|
# Copyright (c) 2007, 2008, 2009, ETH Zurich.
|
|
# All rights reserved.
|
|
#
|
|
# This file is distributed under the terms in the attached LICENSE file.
|
|
# If you do not find this file, copies can be found by writing to:
|
|
# ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
|
|
##########################################################################
|
|
|
|
# Generates a debug.gdb file that can be used to debug the Barrelfish kernel.
|
|
|
|
KERNELPATH=$2
|
|
|
|
OBJDUMP=${OBJDUMP:-no_objdump}
|
|
|
|
get_section_start ()
|
|
{
|
|
${OBJDUMP} -h $KERNELPATH | awk "\$2 == \"$1\"{ print \$4 }"
|
|
}
|
|
|
|
TEXT_ADDR=`get_section_start .text`
|
|
RODATA_ADDR=`get_section_start .rodata`
|
|
DATA_ADDR=`get_section_start .data`
|
|
DATA_REL_ADDR=`get_section_start .data.rel`
|
|
DATA_REL_LOCAL_ADDR=`get_section_start .data.rel.local`
|
|
BSS_ADDR=`get_section_start .bss`
|
|
|
|
MULTIPLIER=0x400000
|
|
|
|
sed -e "s,%KERNEL,$KERNELPATH,
|
|
s/%text/0x$TEXT_ADDR/
|
|
s/%rodata/0x$RODATA_ADDR/
|
|
s/%data_rel_local/0x$DATA_REL_LOCAL_ADDR/
|
|
s/%data_rel/0x$DATA_REL_ADDR/
|
|
s/%data/0x$DATA_ADDR/
|
|
s/%bss/0x$BSS_ADDR/
|
|
s/%multiplier/$MULTIPLIER/" $1
|