This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Exception Handling
- From: nprasad3 at gmu dot edu
- To: Ernie Biancarelli <ernie at aztek-eng dot com>
- Cc: ecos-discuss at sources dot redhat dot com
- Date: Thu, 18 Dec 2003 23:23:13 -0500
- Subject: Re: [ECOS] 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