How to set GDB Watchpoints on iMX6 Yocto 1.0.0 platform

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to set GDB Watchpoints on iMX6 Yocto 1.0.0 platform

Jump to solution
2,375 Views
ottob
Contributor IV

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

Labels (3)
0 Kudos
1 Solution
1,512 Views
alejandrolozan1
NXP Employee
NXP Employee

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

View solution in original post

0 Kudos
5 Replies
1,512 Views
alejandrolozan1
NXP Employee
NXP Employee

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

0 Kudos
1,512 Views
ottob
Contributor IV

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

0 Kudos
1,513 Views
alejandrolozan1
NXP Employee
NXP Employee

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

0 Kudos
1,512 Views
ottob
Contributor IV

Thanks a lot for your help Alejandro !

0 Kudos
1,512 Views
alejandrolozan1
NXP Employee
NXP Employee

Hi,

Ok, let me try that out. But I will use the later BSP version.

/Alejandro

0 Kudos