This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Exception Handling


What are you using for debugging? cyg_hal_default_exception_vsr will be in rom so the debugger won't be able to replace the instruction.

I put a tight loop at the start of the exception handler, break with bdm and release control from the loop and single step.

Nirmal

----- Original Message -----
From: Ernie Biancarelli <ernie@aztek-eng.com>
Date: Thursday, December 18, 2003 6:24 pm
Subject: [ECOS] Exception Handling

> I'm having difficulty debugging exception handlers for my PPC 
> target. I 
> have read the manual and tried to emulate the example for 
> installing an 
> exception handler for the CYGNUM_HAL_VECTOR_SYSTEM_CALL exception. 
> This 
> leads me to believe that I indeed have installed my own exception 
> handler. However, I cannot debug the exception handling path. It 
> seems I 
> cannot set a breakpoint in the assembly code for 
> cyg_hal_default_exception_vsr. And when I look for the 
> implementation of 
> cyg_hal_exception_handler in Insight, I can't find it defined in 
> hal_misc.c. In fact, hal_misc.c doesn't look anything like the 
> file that 
> is in the hal/powerpc/arch directory. I'm confused.
> 
> Can someone shed some light on this topic for me and give me some 
> tips 
> as to where I can set breakpoints when debugging exceptions?
> 
> I'm using Redboot as a rom monitor and it has the GDB stubs built 
> in. My 
> target config is attached if that helps.
> 
> Ernie
> 
cdl_savefile_version 1;
cdl_savefile_command cdl_savefile_version {};
cdl_savefile_command cdl_savefile_command {};
cdl_savefile_command cdl_configuration { description hardware template package };
cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };

cdl_configuration eCos {
    description "" ;
    hardware    ct ;
    template    net ;
    package -hardware CYGPKG_HAL_POWERPC current ;
    package -hardware CYGPKG_HAL_POWERPC_MPC8XXX current ;
    package -hardware CYGPKG_HAL_POWERPC_CT current ;
    package -hardware CYGPKG_DEVS_FLASH_POWERPC_CT current ;
    package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
    package -hardware CYGPKG_DEVS_ETH_POWERPC_FCC current ;
    package -hardware CYGPKG_DEVS_ETH_POWERPC_CT current ;
    package -hardware CYGPKG_DEVS_ETH_PHY current ;
    package -hardware CYGPKG_IO_SERIAL_POWERPC_MPC8XXX current ;
    package CYGPKG_HAL current ;
    package CYGPKG_IO current ;
    package CYGPKG_IO_SERIAL current ;
    package CYGPKG_INFRA current ;
    package CYGPKG_ISOINFRA current ;
    package CYGPKG_KERNEL current ;
    package CYGPKG_MEMALLOC current ;
    package CYGPKG_LIBC current ;
    package CYGPKG_LIBC_TIME current ;
    package CYGPKG_LIBC_STDLIB current ;
    package CYGPKG_LIBC_STRING current ;
    package CYGPKG_LIBC_I18N current ;
    package CYGPKG_LIBC_SETJMP current ;
    package CYGPKG_LIBC_STARTUP current ;
    package CYGPKG_LIBC_STDIO current ;
    package CYGPKG_LIBM current ;
    package CYGPKG_POSIX current ;
    package CYGPKG_IO_WALLCLOCK current ;
    package -template CYGPKG_ERROR current ;
    package -template CYGPKG_IO_FILEIO current ;
    package -template CYGPKG_NET current ;
    package -template CYGPKG_NET_FREEBSD_STACK current ;
    package -template CYGPKG_IO_ETH_DRIVERS current ;
    package CYGPKG_IO_FLASH current ;
};

cdl_option CYGSEM_HAL_POWERPC_RESET_USES_JUMP {
    user_value 1
};

cdl_option CYGSEM_HAL_POWERPC_COPY_VECTORS {
    user_value 0
};

cdl_option CYGDBG_HAL_POWERPC_FRAME_WALLS {
    user_value 1
};

cdl_component CYGPKG_IO_FILE_SUPPORT {
    user_value 0
};

cdl_option CYGHWR_DEVS_ETH_PHY_DP83847 {
    user_value 1
};

cdl_component CYGPKG_IO_SERIAL_TTY_TTY0 {
    user_value 1
};

cdl_option CYGDAT_IO_SERIAL_TTY_TTY0_DEV {
    user_value "\"/dev/ser1\""
};

cdl_component CYGPKG_IO_SERIAL_TTY_TTY1 {
    user_value 1
};

cdl_option CYGDAT_IO_SERIAL_TTY_TTY1_DEV {
    user_value "\"/dev/ser2\""
};

cdl_component CYGPKG_IO_SERIAL_TTY_TTY2 {
    user_value 1
};

cdl_option CYGDAT_IO_SERIAL_TTY_TTY2_DEV {
    user_value "\"/dev/scc1\""
};

cdl_component CYGPKG_IO_SERIAL_DEVICES {
    user_value 1
};

cdl_component CYGPKG_INFRA_DEBUG {
    user_value 1
};

cdl_component CYGDBG_USE_ASSERTS {
    user_value 1
};

cdl_option CYGBLD_ISO_CTYPE_HEADER {
    inferred_value 1 <cyg/libc/i18n/ctype.inl>
};

cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER {
    inferred_value 1 <cyg/error/codes.h>
};

cdl_option CYGBLD_ISO_ERRNO_HEADER {
    inferred_value 1 <cyg/error/errno.h>
};

cdl_option CYGBLD_ISO_STDIO_FILETYPES_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDIO_FILEACCESS_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDIO_CHAR_IO_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDIO_DIRECT_IO_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDIO_ERROR_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDLIB_STRCONV_HEADER {
    inferred_value 1 <cyg/libc/stdlib/atox.inl>
};

cdl_option CYGBLD_ISO_STDLIB_ABS_HEADER {
    inferred_value 1 <cyg/libc/stdlib/abs.inl>
};

cdl_option CYGBLD_ISO_STDLIB_DIV_HEADER {
    inferred_value 1 <cyg/libc/stdlib/div.inl>
};

cdl_option CYGBLD_ISO_STRERROR_HEADER {
    inferred_value 1 <cyg/error/strerror.h>
};

cdl_option CYGBLD_ISO_STRTOK_R_HEADER {
    inferred_value 1 <cyg/libc/string/string.h>
};

cdl_option CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER {
    inferred_value 1 <cyg/libc/string/string.h>
};

cdl_option CYGBLD_ISO_STRING_BSD_FUNCS_HEADER {
    inferred_value 1 <cyg/libc/string/bsdstring.h>
};

cdl_option CYGBLD_ISO_STRING_MEMFUNCS_HEADER {
    inferred_value 1 <cyg/libc/string/string.h>
};

cdl_option CYGBLD_ISO_STRING_STRFUNCS_HEADER {
    inferred_value 1 <cyg/libc/string/string.h>
};

cdl_option CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER {
    inferred_value 1 <cyg/posix/time.h>
};

cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER {
    inferred_value 1 <cyg/posix/time.h>
};

cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER {
    inferred_value 1 <cyg/libc/time/time.h>
};

cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER {
    inferred_value 1 <cyg/posix/time.h>
};

cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER {
    inferred_value 1 <cyg/posix/time.h>
};

cdl_option CYGBLD_ISO_C_CLOCK_FUNCS_HEADER {
    inferred_value 1 <cyg/libc/time/time.h>
};

cdl_option CYGBLD_ISO_SIGNAL_NUMBERS_HEADER {
    inferred_value 1 <cyg/posix/signal.h>
};

cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER {
    inferred_value 1 <cyg/posix/signal.h>
};

cdl_option CYGBLD_ISO_SETJMP_HEADER {
    inferred_value 1 <cyg/libc/setjmp/setjmp.h>
};

cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
    inferred_value 1 <cyg/posix/sigsetjmp.h>
};

cdl_option CYGBLD_ISO_DIRENT_HEADER {
    inferred_value 1 <cyg/fileio/dirent.h>
};

cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER {
    inferred_value 1 <cyg/posix/types.h>
};

cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER {
    inferred_value 1 <cyg/posix/muttypes.h>
};

cdl_option CYGBLD_ISO_BSDTYPES_HEADER {
    inferred_value 1 <sys/bsdtypes.h>
};

cdl_option CYGBLD_ISO_UTSNAME_HEADER {
    inferred_value 1 <cyg/posix/utsname.h>
};

cdl_option CYGBLD_ISO_SEMAPHORES_HEADER {
    inferred_value 1 <cyg/posix/semaphore.h>
};

cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER {
    inferred_value 1 <cyg/posix/pthread.h>
};

cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER {
    inferred_value 1 <cyg/posix/mutex.h>
};

cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER {
    inferred_value 1 <cyg/posix/limits.h>
};

cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
    inferred_value 1 <cyg/fileio/limits.h>
};

cdl_option CYGBLD_ISO_NAME_MAX_HEADER {
    inferred_value 1 <cyg/fileio/limits.h>
};

cdl_option CYGBLD_ISO_DNS_HEADER {
    inferred_value 1 <cyg/ns/dns/dns.h>
};

cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER {
    inferred_value 1 <net/netdb.h>
};

cdl_option CYGBLD_ISO_NETDB_SERV_HEADER {
    inferred_value 1 <net/netdb.h>
};

cdl_option CYGIMP_KERNEL_SCHED_SORTED_QUEUES {
    inferred_value 1
};

cdl_option CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE {
    inferred_value 1
};

cdl_component CYGSEM_KERNEL_SCHED_ASR_SUPPORT {
    inferred_value 1
};

cdl_option CYGSEM_KERNEL_SCHED_ASR_GLOBAL {
    inferred_value 1
};

cdl_component CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT {
    user_value 1
};

cdl_component CYGPKG_KERNEL_THREADS_DESTRUCTORS {
    inferred_value 1
};

cdl_option CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE {
    user_value 2048
};

cdl_option CYGNUM_KERNEL_MAX_SUSPEND_COUNT_ASSERT {
    user_value 500
};

cdl_option CYGNUM_KERNEL_SYNCH_MBOX_QUEUE_SIZE {
    user_value 100
};

cdl_option CYGNUM_FILEIO_NFILE {
    user_value 100
};

cdl_option CYGNUM_FILEIO_NFD {
    user_value 100
};

cdl_option CYGNUM_FILEIO_FSTAB_MAX {
    user_value 4
};

cdl_option CYGNUM_FILEIO_MTAB_MAX {
    user_value 8
};

cdl_option CYGNUM_FILEIO_MTAB_EXTRA {
    user_value 8
};

cdl_option CYGPKG_NET_FORCE_SERIAL_CONSOLE {
    user_value 1
};

cdl_option CYGPKG_NET_MEM_USAGE {
    user_value 1458176
};

cdl_option CYGPKG_NET_MAXSOCKETS {
    user_value 100
};

cdl_option CYGHWR_DEVS_FLASH_AMD_AM29LV160 {
    user_value 1
};



-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]