Hi There,
I tried setting a watchpoint using
watch [variable name]
but as soon as I resume program execution I get a
"You may have requested too many hardware breakpoints/watchpoints."
Error, even though I do not have any other breakpoints set.
Is the iMX6 not capable of write watchpoints or is this user error or a GDB problem ?
Btw, I'm using GDB 7.6 and the Yocto GA 1.0.0 version with Linux 3.10.17
Thanks,
/Otto
Solved! Go to Solution.
Hi,
Sorry for the delay.
For some reason I cannot set a hw watchpoint too, but to work around it you can try to use sw watchpoints only:
set can-use-hw-watchpoints 0
I tried the below configuration before setting any watchpoint and it is working.
Best Regards,
Alejandro
Hi,
Can you explaine how you generated the GDB?
I doubt there is a restriction of problem with Linux or the imx6, this may be an issue with GDB.
Here GDB for i.MX Linux userspace and Eclipse integration you can find the steps to integrate and generate GDB.
I assume you did something similar.
Best Regards,
Alejandro
Hi Alejandro !
GDB was built using "bitbake gdb-cross". Read watchpoints (rwatch) seems to work, but not write (watch) which is actually a lot more important. See log.do_configure file below.
Thanks for your help
/Otto
DEBUG: Executing python function sysroot_cleansstate
DEBUG: Python function sysroot_cleansstate finished
DEBUG: SITE files ['endian-little', 'bit-32', 'ix86-common', 'common-linux', 'common-glibc', 'i686-linux', 'common']
DEBUG: Executing shell function autotools_preconfigure
DEBUG: Shell function autotools_preconfigure finished
DEBUG: Executing shell function do_configure
configure.ac:34: error: Please use exactly Autoconf 2.64 instead of 2.69.
config/override.m4:12: _GCC_AUTOCONF_VERSION_CHECK is expanded from...
configure.ac:34: the top level
autom4te: m4 failed with exit status: 1
NOTE: Running /project/yocto/build2/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/gdb-cross/7.6-r2/gdb-7.6/configure --build=i686-linux --host=i686-linux --target=arm-poky-linux-gnueabi --prefix=/project/yocto/build2/tmp/sysroots/i686-linux/usr --exec_prefix=/project/yocto/build2/tmp/sysroots/i686-linux/usr --bindir=/project/yocto/build2/tmp/sysroots/i686-linux/usr/bin/cortexa9hf-vfp-neon-poky-linux-gnueabi --sbindir=/project/yocto/build2/tmp/sysroots/i686-linux/usr/bin/cortexa9hf-vfp-neon-poky-linux-gnueabi --libexecdir=/project/yocto/build2/tmp/sysroots/i686-linux/usr/libexec/cortexa9hf-vfp-neon-poky-linux-gnueabi --datadir=/project/yocto/build2/tmp/sysroots/i686-linux/usr/share/gdb-cortexa9hf-vfp-neon-poky-linux-gnueabi --sysconfdir=/project/yocto/build2/tmp/sysroots/i686-linux/etc --sharedstatedir=/project/yocto/build2/tmp/sysroots/i686-linux/com --localstatedir=/project/yocto/build2/tmp/sysroots/i686-linux/var --libdir=/project/yocto/build2/tmp/sysroots/i686-linux/usr/lib/cortexa9hf-vfp-neon-poky-linux-gnueabi --includedir=/project/yocto/build2/tmp/sysroots/i686-linux/usr/include --oldincludedir=/project/yocto/build2/tmp/sysroots/i686-linux/usr/include --infodir=/projectrun.do_configure.11117/yocto/build2/tmp/sysroots/i686-linux/usr/share/gdb-cortexa9hf-vfp-neon-poky-linux-gnueabi/info --mandir=/project/yocto/build2/tmp/sysroots/i686-linux/usr/share/gdb-cortexa9hf-vfp-neon-poky-linux-gnueabi/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/project/yocto/build2/tmp/sysroots/i686-linux --disable-gdbtk --disable-tui --disable-x --disable-werror --with-curses --disable-multilib --with-system-readline --disable-sim --without-lzma --with-expat --with-libexpat-prefix=/project/yocto/build2/tmp/sysroots/i686-linux --enable-64-bit-bfd --disable-rpath --disable-nls --with-python=/project/yocto/build2/tmp/sysroots/i686-linux/usr/bin/python-native/python
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... arm-poky-linux-gnueabi
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... gawk
checking for i686-linux-gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ accepts -static-libstdc++ -static-libgcc... yes
checking for i686-linux-gnatbind... no
checking for gnatbind... no
checking for i686-linux-gnatmake... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
checking for version 0.10 of ISL... no
checking for version 0.11 of ISL... no
*** This configuration is not supported in the following subdirectories:
sim
(Any other directories should still work fine.)
checking for default BUILD_CONFIG...
checking for bison... bison -y
checking for bison... bison
checking for gm4... no
checking for gnum4... no
checking for m4... m4
checking for flex... flex
checking for flex... flex
checking for makeinfo... makeinfo
checking for expect... no
checking for runtest... no
checking for ar... (cached) ar
checking for i686-linux-ar... (cached) ar
checking for as... (cached) as
checking for i686-linux-as... (cached) as
checking for i686-linux-dlltool... no
checking for dlltool... no
checking for ld... (cached) ld
checking for i686-linux-ld... (cached) ld
checking for i686-linux-lipo... no
checking for lipo... no
checking for nm... (cached) nm
checking for i686-linux-nm... (cached) nm
checking for ranlib... (cached) ranlib
checking for i686-linux-ranlib... (cached) ranlib
checking for strip... (cached) strip
checking for i686-linux-strip... (cached) strip
checking for i686-linux-windres... no
checking for windres... no
checking for i686-linux-windmc... no
checking for windmc... no
checking for objcopy... (cached) objcopy
checking for i686-linux-objcopy... (cached) objcopy
checking for objdump... (cached) objdump
checking for i686-linux-objdump... (cached) objdump
checking for i686-linux-readelf... no
checking for readelf... readelf
checking for arm-poky-linux-gnueabi-cc... no
checking for arm-poky-linux-gnueabi-gcc... arm-poky-linux-gnueabi-gcc
checking for arm-poky-linux-gnueabi-c++... arm-poky-linux-gnueabi-c++
checking for arm-poky-linux-gnueabi-gcc... arm-poky-linux-gnueabi-gcc
checking for arm-poky-linux-gnueabi-gcj... no
checking for arm-poky-linux-gnueabi-gfortran... no
checking for arm-poky-linux-gnueabi-gccgo... no
checking for arm-poky-linux-gnueabi-ar... arm-poky-linux-gnueabi-ar
checking for arm-poky-linux-gnueabi-as... arm-poky-linux-gnueabi-as
checking for arm-poky-linux-gnueabi-dlltool... no
checking for arm-poky-linux-gnueabi-ld... arm-poky-linux-gnueabi-ld
checking for arm-poky-linux-gnueabi-lipo... no
checking for arm-poky-linux-gnueabi-nm... arm-poky-linux-gnueabi-nm
checking for arm-poky-linux-gnueabi-objdump... arm-poky-linux-gnueabi-objdump
checking for arm-poky-linux-gnueabi-ranlib... arm-poky-linux-gnueabi-ranlib
checking for arm-poky-linux-gnueabi-readelf... arm-poky-linux-gnueabi-readelf
checking for arm-poky-linux-gnueabi-strip... arm-poky-linux-gnueabi-strip
checking for arm-poky-linux-gnueabi-windres... no
checking for arm-poky-linux-gnueabi-windmc... no
checking where to find the target ar... pre-installed
checking where to find the target as... pre-installed
checking where to find the target cc... pre-installed
checking where to find the target c++... pre-installed
checking where to find the target c++ for libstdc++... pre-installed
checking where to find the target dlltool... pre-installed
checking where to find the target gcc... pre-installed
checking where to find the target gcj... pre-installed
checking where to find the target gfortran... pre-installed
checking where to find the target gccgo... pre-installed
checking where to find the target ld... pre-installed
checking where to find the target lipo... pre-installed
checking where to find the target nm... pre-installed
checking where to find the target objdump... pre-installed
checking where to find the target ranlib... pre-installed
checking where to find the target readelf... pre-installed
checking where to find the target strip... pre-installed
checking where to find the target windres... pre-installed
checking where to find the target windmc... pre-installed
checking whether to enable maintainer-specific portions of Makefiles... no
configure: creating ./config.status
config.status: creating Makefile
DEBUG: Shell function do_configure finished
DEBUG: Executing python function do_qa_configure
NOTE: Checking autotools environment for common misconfiguration
NOTE: gdb-cross: md5 checksum matched for file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552
NOTE: gdb-cross: md5 checksum matched for file://COPYING3;md5=d32239bcb673463ab874e80d47fae504
NOTE: gdb-cross: md5 checksum matched for file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6
NOTE: gdb-cross: md5 checksum matched for file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674
DEBUG: Python function do_qa_configure finished
DEBUG: Executing shell function autotools_postconfigure
DEBUG: Shell function autotools_postconfigure finished
Hi,
Sorry for the delay.
For some reason I cannot set a hw watchpoint too, but to work around it you can try to use sw watchpoints only:
set can-use-hw-watchpoints 0
I tried the below configuration before setting any watchpoint and it is working.
Best Regards,
Alejandro
Thanks a lot for your help Alejandro !
Hi,
Ok, let me try that out. But I will use the later BSP version.
/Alejandro