Sysprogs forums › Forums › VisualGDB › Debugging w. VS2015 and Segger J-Link
- This topic has 46 replies, 3 voices, and was last updated 7 years, 4 months ago by support.
-
AuthorPosts
-
June 29, 2016 at 16:58 #8498cwitParticipant
Hi
I can’t seem to get any symbols loaded when debugging so I can only see assembler code and not the source code. I am using VS2015 Pro and a trial version of VisualGDB, together with a Segger J-link (JLink_V512g). The target device is ATSAM4S16C. I have tried to explicitly use -g as compile and link flags, but as suspected this made no difference. According to all guides it seems that everything is supposed to work out-of-box, but it just doesn’t work for me 🙁
Maybe I am doing something wrong, or is missing some key setting. Since I have no clue I am hoping that someone will be able to assist in getting this to work correctly. Please let me if I should supply any information in order to get this sorted out.
Kind regards,
ChristianJune 30, 2016 at 01:32 #8501supportKeymasterHi,
No problem. Please try running the “info sources” command in the GDB Session window. It should show the list of source files known to the debugger. Are your files listed there? If not, please try opening any .o file with ARM gdb (arm-eabi-gdb.exe <file.o>) and run “info sources” on it. If the sources are not listed either, please double-check that you actually have the “-ggdb” flag and that the files are not stripped. If the .o files have symbols, but the final .elf file does not, please check that the ELF file is not stripped after being linked.
June 30, 2016 at 17:05 #8504cwitParticipantHi,
The ‘info sources’ command does show a list of the source files, so I tried to arm-eabi-gdb.exe. This showed an interesting error message “invalid dwarf2 offset”. That made me believe that there could a format mismatch. I then added ‘–dwarf2’ as compile option and that appeared to fix in the dwarf2 offset message. But I am still not able to see the source code in the debugger.
I can’t see any where the files should be stripped of symbols, and as far as I can see the elf file does appear to have debug information included. The arm-eabi-gdb.exe utility does not complain about anything and claims that it has loaded symbols.
Any ideas?
June 30, 2016 at 18:01 #8505supportKeymasterHi,
Are you using one of our toolchains, or your own one? Sometimes the default debug format produced by a certain version of gcc is unreadable by certain versions of gdb. We test for that in our toolchains, but if you are using your own one, this might be the case.
After changing the debug format (it should be -gdwarf-<version> as described here) do you see the list of source files when running gdb on your .o files manually?
June 30, 2016 at 20:49 #8511cwitParticipantHi,
We are currently using mingw32 and DS-5.
When I was asked to look into using VS2015 with a GDB plugin I started to look at options. I first tried to install ‘Visual C++ for IoT Development’. And now I have installed both WinGDB and VisualGDB for testing. I have not had success with any of the three when it comes to debugging. But VisualGDB does seem the be the best choice.
I did use -gdwarf at first but got a warning about it being ‘old style’ and that I should use -dwarf-<version>.
I agree with you that it is plausible that some kind of interference is taking place. I will try to uninstall all and then install only VisualGDB.
Thanks for your time and help so far.
Kind regards,
ChristianJuly 2, 2016 at 04:24 #8514supportKeymasterHi,
Thanks for the kind words and we are sorry that the debugging is not working yet.
Installing other plugins should not affect this, as it looks like some sort of a compilation flag/tool problem.
Please try creating a project with a VisualGDB toolchain and using the default VisualGDB settings. This should get a working starting point. Then you can simply compare the build logs and the produced binaries side-by-side to simplify figuring out what is causing this. Feel free to share the details of your progress so that we could give further advice.
July 27, 2016 at 15:30 #8709cwitParticipantHi,
I have been on vacation for a couple of weeks and a have had lot of other work to do. So, I have not had a chance to dig further into this. I have now tried to uninstall everything and then reinstall to have a clean slate. My biggest problem now is that I have two days left before my trial version expires. So, let’s see if we can get this to work.
I have tried to start with a simple test project generated by VisualGDB. I am using default settings (to the extent that I can) but I am still not able to see the source code when debugging. But it seems to me that the project is linked incorrectly. The memory addresses in the map file does not correspond to the device memory mapping (see below). But how do I set this in the project? Have tried to manually update the MCU.xml file but that made no difference. With the Atmel – which I am using – not being supported by VisualGDB I have to enter it manually. But what setting do I need to add where?
I have not added a ‘peripheral register definition file’ as I do not have one, and because I don’t need to know the content of any peripheral registers to start with (and it appears to be quite a huge task to make such a file).
My setup:
OS: Windows 8.1 64 bit
JTAG: Segger J-LiNK Ultra+
Device: ATSAM4SA16C (FLASH_BASE: 0x400000, FLASH_SIZE: 1024K, RAM_BASE: 0x20000000, RAM_SIZE: 160K)
Toolchain: C:\SysGCC\arm-eabiPart of map file:
.init 0x00008000 0x18
*(SORT(.init))
.init 0x00008000 0xc c:/sysgcc/arm-eabi/bin/../lib/gcc/arm-eabi/5.3.0/crti.o
0x00008000 _init
.init 0x0000800c 0xc c:/sysgcc/arm-eabi/bin/../lib/gcc/arm-eabi/5.3.0/crtn.o.plt
*(.plt).iplt 0x00008018 0x0
*(.iplt)
.iplt 0x00000000 0x0 c:/sysgcc/arm-eabi/bin/../lib/gcc/arm-eabi/5.3.0/crtbegin.o.text 0x00008018 0x25e4
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
*(.text.exit .text.exit.*)
*(.text.startup .text.startup.*)
*(.text.hot .text.hot.*)
*(.text .stub .text.* .gnu.linkonce.t.*)
.text 0x00008018 0x108 c:/sysgcc/arm-eabi/bin/../lib/gcc/arm-eabi/5.3.0/crtbegin.o
.text 0x00008120 0x114 c:/sysgcc/arm-eabi/bin/../lib/gcc/arm-eabi/5.3.0/../../../../arm-eabi/lib/crt0.o
0x00008120 _start
0x00008120 _mainCRTStartup
.text._Z8TestFuncii
0x00008234 0x4c Debug/TestBasic2.o
0x00008234 _Z8TestFuncii
.text.main 0x00008280 0x44 Debug/TestBasic2.o
0x00008280 mainGDB log:
C:\SysGCC\arm-eabi\bin\arm-eabi-gdb.exe –interpreter mi C:\TestJigController\TestBasic2\TestBasic2/Debug/TestBasic2.elf
[ 0 ms] -gdb-version
[ 352 ms] =thread-group-added,id=”i1″
[ 352 ms] ~”GNU gdb (GDB) 7.10.1\n”
[ 352 ms] ~”Copyright (C) 2015 Free Software Foundation, Inc.\n”
[ 353 ms] ~”License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law. Type \”show copying\”\nand \”show warranty\” for details.\n”
[ 353 ms] ~”This GDB was configured as \”–host=i686-pc-mingw32 –target=arm-eabi\”.\nType \”show configuration\” for configuration details.”
[ 353 ms] ~”\nFor bug reporting instructions, please see:\n”
[ 353 ms] ~”<http://www.gnu.org/software/gdb/bugs/>.\n”
[ 354 ms] ~”Find the GDB manual and other documentation resources online at:\n<http://www.gnu.org/software/gdb/documentation/>.\n”
[ 354 ms] ~”For help, type \”help\”.\n”
[ 355 ms] ~”Type \”apropos word\” to search for commands related to \”word\”…\n”
[ 362 ms] ~”Reading symbols from C:\\TestJigController\\TestBasic2\\TestBasic2/Debug/TestBasic2.elf…”
[ 367 ms] ~”done.\n”
[ 369 ms] ~”GNU gdb (GDB) 7.10.1\n”
[ 369 ms] ~”Copyright (C) 2015 Free Software Foundation, Inc.\n”
[ 370 ms] ~”License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law. Type \”show copying\”\nand \”show warranty\” for details.\n”
[ 370 ms] ~”This GDB was configured as \”–host=i686-pc-mingw32 –target=arm-eabi\”.\nType \”show configuration\” for configuration details.”
[ 370 ms] ~”\nFor bug reporting instructions, please see:\n”
[ 370 ms] ~”<http://www.gnu.org/software/gdb/bugs/>.\n”
[ 371 ms] ~”Find the GDB manual and other documentation resources online at:\n<http://www.gnu.org/software/gdb/documentation/>.\n”
[ 371 ms] ~”For help, type \”help\”.\n”
[ 371 ms] ~”Type \”apropos word\” to search for commands related to \”word\”.\n”
[ 371 ms] ^done
[ 371 ms] -list-features
[ 372 ms] ^done,features=[“frozen-varobjs”,”pending-breakpoints”,”thread-info”,”data-read-memory-bytes”,”breakpoint-notifications”,”ada-task-info”,”language-option”,”info-gdb-mi-command”,”undefined-command-error-code”,”exec-run-start-option”]
[ 372 ms] -gdb-set stop-on-solib-events 1
[ 372 ms] ^done
[ 372 ms] -gdb-set disassembly-flavor intel
[ 373 ms] ^error,msg=”No symbol \”disassembly\” in current context.”
[ 373 ms] ^error,msg=”No symbol \”disassembly\” in current context.”
[ 373 ms] -gdb-set print demangle off
[ 373 ms] ^done
[ 373 ms] -break-insert -f main
[ 387 ms] ^done,bkpt={number=”1″,type=”breakpoint”,disp=”keep”,enabled=”y”,addr=”0x00008288″,func=”main()”,file=”TestBasic2.cpp”,fullname=”C:\\TestJigController\\TestBasic2\\TestBasic2\\TestBasic2.cpp”,line=”15″,thread-groups=[“i1″],times=”0″,original-location=”main”}
[ 388 ms] target remote :2331
[ 398 ms] &”target remote :2331\n”
[ 424 ms] ~”Remote debugging using :2331\n”
[ 430 ms] =thread-group-started,id=”i1″,pid=”42000″
[ 430 ms] =thread-created,id=”1″,group-id=”i1″
[ 450 ms] ~”0x004019c8 in ?? ()\n”
[ 450 ms] *stopped,frame={addr=”0x004019c8″,func=”??”,args=[]},thread-id=”1″,stopped-threads=”all”
[ 450 ms] ^done
[ 450 ms] mon reset
[ 461 ms] &”mon reset\n”
[ 489 ms] @”Resetting target\r\n”
[ 489 ms] ^done
[ 489 ms] info shared
[ 489 ms] &”info shared\n”
[ 490 ms] ~”No shared libraries loaded at this time.\n”
[ 490 ms] ^done
[ 490 ms] load
[ 501 ms] &”load\n”
[ 502 ms] ~”Loading section .init, size 0x18 lma 0x8000\n”
[ 504 ms] +download,{section=”.init”,section-size=”24″,total-size=”111763″}
[ 504 ms] ~”Loading section .text, size 0x25e4 lma 0x8018\n”
[ 504 ms] +download,{section=”.text”,section-size=”9700″,total-size=”111763″}
[ 510 ms] ~”Loading section .fini, size 0x18 lma 0xa5fc\n”
[ 510 ms] +download,{section=”.fini”,section-size=”24″,total-size=”111763″}
[ 510 ms] ~”Loading section .rodata, size 0x1c lma 0xa614\n”
[ 511 ms] +download,{section=”.rodata”,section-size=”28″,total-size=”111763″}
[ 511 ms] ~”Loading section .ARM.exidx, size 0x8 lma 0xa630\n”
[ 513 ms] +download,{section=”.ARM.exidx”,section-size=”8″,total-size=”111763″}
[ 513 ms] ~”Loading section .eh_frame, size 0x4 lma 0xa638\n”
[ 513 ms] +download,{section=”.eh_frame”,section-size=”4″,total-size=”111763″}
[ 514 ms] ~”Loading section .init_array, size 0x4 lma 0x1263c\n”
[ 515 ms] +download,{section=”.init_array”,section-size=”4″,total-size=”111763″}
[ 515 ms] ~”Loading section .fini_array, size 0x4 lma 0x12640\n”
[ 518 ms] +download,{section=”.fini_array”,section-size=”4″,total-size=”111763″}
[ 518 ms] ~”Loading section .jcr, size 0x4 lma 0x12644\n”
[ 518 ms] +download,{section=”.jcr”,section-size=”4″,total-size=”111763″}
[ 518 ms] ~”Loading section .data, size 0x848 lma 0x12648\n”
[ 520 ms] +download,{section=”.data”,section-size=”2120″,total-size=”111763″}
[ 520 ms] ~”Start address 0x8120, load size 11920\n”
[ 907 ms] ~”Transfer rate: 646 KB/sec, 993 bytes/write.\n”
[ 908 ms] ^done
[ 952 ms] info target
[ 967 ms] &”info target\n”
[ 968 ms] ~”Symbols from \”C:\\TestJigController\\TestBasic2\\TestBasic2\\Debug\\TestBasic2.elf\”.\n”
[ 968 ms] ~”Remote serial target in gdb-specific protocol:\n”
[ 968 ms] ~”Debugging a target over a serial line.\n”
[ 969 ms] ~”\tWhile running this, GDB does not access memory from…\n”
[ 969 ms] ~”Local exec file:\n”
[ 970 ms] ~”\t`C:\\TestJigController\\TestBasic2\\TestBasic2\\Debug\\TestBasic2.elf’, file type elf32-littlearm.\n”
[ 970 ms] ~”\tEntry point: 0x8120\n”
[ 970 ms] ~”\t0x00008000 – 0x00008018 is .init\n”
[ 971 ms] ~”\t0x00008018 – 0x0000a5fc is .text\n”
[ 971 ms] ~”\t0x0000a5fc – 0x0000a614 is .fini\n”
[ 971 ms] ~”\t0x0000a614 – 0x0000a630 is .rodata\n”
[ 972 ms] ~”\t0x0000a630 – 0x0000a638 is .ARM.exidx\n”
[ 972 ms] ~”\t0x0000a638 – 0x0000a63c is .eh_frame\n”
[ 972 ms] ~”\t0x0001263c – 0x00012640 is .init_array\n”
[ 973 ms] ~”\t0x00012640 – 0x00012644 is .fini_array\n”
[ 973 ms] ~”\t0x00012644 – 0x00012648 is .jcr\n”
[ 973 ms] ~”\t0x00012648 – 0x00012e90 is .data\n”
[ 974 ms] ~”\t0x00012e90 – 0x00012f98 is .bss\n”
[ 974 ms] ^done
[ 1100 ms] -break-insert -f C:/depot/projects/olympus/Enlil/Main/Content/TestJigController/Source/Service/Main.cpp:27
[ 1109 ms] &”No source file named C:/depot/projects/olympus/Enlil/Main/Content/TestJigController/Source/Service/Main.cpp.\n”
[ 1111 ms] ^done,bkpt={number=”2″,type=”breakpoint”,disp=”keep”,enabled=”y”,addr=”<PENDING>”,pending=”C:/depot/projects/olympus/Enlil/Main/Content/TestJigController/Source/Service/Main.cpp:27″,times=”0″,original-location=”C:/depot/projects/olympus/Enlil/Main/Content/TestJigController/Source/Service/Main.cpp:27″}
[ 1124 ms] -file-list-exec-source-files
[ 1302 ms] ^done,files=[{file=”../../../../newlib-nano-2015q2/libgloss/arm/crt0.S”,fullname=”/q/gnu/newlib-nano/build-2015q4/arm-eabi/libgloss/arm/../../../../newlib-nano-2015q2/libgloss/arm/crt0.S”},{file=”TestBasic2.cpp”,fullname=”C:\\TestJigController\\TestBasic2\\TestBasic2\\TestBasic2.cpp”},{file=”../../../../../newlib-2.2.0/newlib/libc/reent/reent.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/reent/../../../../../newlib-2.2.0/newlib/libc/reent/reent.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/reent/readr.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/reent/../../../../../newlib-2.2.0/newlib/libc/reent/readr.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/reent/lseekr.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/reent/../../../../../newlib-2.2.0/newlib/libc/reent/lseekr.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/stdlib/mallocr.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/stdlib/../../../../../newlib-2.2.0/newlib/libc/stdlib/mallocr.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/stdio/fflush.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/stdio/../../../../../newlib-2.2.0/newlib/libc/stdio/fflush.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/stdio/fclose.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/stdio/../../../../../newlib-2.2.0/newlib/libc/stdio/fclose.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/reent/closer.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/reent/../../../../../newlib-2.2.0/newlib/libc/reent/closer.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/reent/writer.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/reent/../../../../../newlib-2.2.0/newlib/libc/reent/writer.c”},{file=”../../../../../../newlib-2.2.0/newlib/libc/machine/arm/strlen.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/machine/arm/../../../../../../newlib-2.2.0/newlib/libc/machine/arm/strlen.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/stdio/stdio.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/stdio/../../../../../newlib-2.2.0/newlib/libc/stdio/stdio.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/reent/sbrkr.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/reent/../../../../../newlib-2.2.0/newlib/libc/reent/sbrkr.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/stdlib/mlock.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/stdlib/../../../../../newlib-2.2.0/newlib/libc/stdlib/mlock.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/stdlib/mallocr.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/stdlib/../../../../../newlib-2.2.0/newlib/libc/stdlib/mallocr.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/stdio/fwalk.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/stdio/../../../../../newlib-2.2.0/newlib/libc/stdio/fwalk.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/stdio/findfp.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/stdio/../../../../../newlib-2.2.0/newlib/libc/stdio/findfp.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/errno/errno.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/errno/../../../../../newlib-2.2.0/newlib/libc/errno/errno.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/stdlib/__call_atexit.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/stdlib/../../../../../newlib-2.2.0/newlib/libc/stdlib/__call_atexit.c”},{file=”../../../../../../newlib-2.2.0/newlib/libc/sys/arm/swi.h”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/sys/arm/../../../../../../newlib-2.2.0/newlib/libc/sys/arm/swi.h”},{file=”../../../../../../newlib-2.2.0/newlib/libc/sys/arm/syscalls.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/sys/arm/../../../../../../newlib-2.2.0/newlib/libc/sys/arm/syscalls.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/string/memset.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/string/../../../../../newlib-2.2.0/newlib/libc/string/memset.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/misc/init.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/misc/../../../../../newlib-2.2.0/newlib/libc/misc/init.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/reent/impure.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/reent/../../../../../newlib-2.2.0/newlib/libc/reent/impure.c”},{file=”../../../../../newlib-2.2.0/newlib/libc/stdlib/exit.c”,fullname=”/q/gnu/auto/newlib-bu-2.24+gcc-5.3.0+gmp-5.1.3+mpfr-3.1.2+mpc-1.0.2+newlib-2.2.0-arm-eabi/arm-eabi/newlib/libc/stdlib/../../../../../newlib-2.2.0/newlib/libc/stdlib/exit.c”}]
[ 1306 ms] -break-info 2
[ 1316 ms] ^done,BreakpointTable={nr_rows=”1″,nr_cols=”6″,hdr=[{width=”7″,alignment=”-1″,col_name=”number”,colhdr=”Num”},{width=”14″,alignment=”-1″,col_name=”type”,colhdr=”Type”},{width=”4″,alignment=”-1″,col_name=”disp”,colhdr=”Disp”},{width=”3″,alignment=”-1″,col_name=”enabled”,colhdr=”Enb”},{width=”10″,alignment=”-1″,col_name=”addr”,colhdr=”Address”},{width=”40″,alignment=”2″,col_name=”what”,colhdr=”What”}],body=[bkpt={number=”2″,type=”breakpoint”,disp=”keep”,enabled=”y”,addr=”<PENDING>”,pending=”C:/depot/projects/olympus/Enlil/Main/Content/TestJigController/Source/Service/Main.cpp:27″,times=”0″,original-location=”C:/depot/projects/olympus/Enlil/Main/Content/TestJigController/Source/Service/Main.cpp:27″}]}
[ 1317 ms] -break-after 2 0
[ 1328 ms] ^done
[ 1336 ms] -data-evaluate-expression “&_estack”
[ 1340 ms] ^error,msg=”No symbol \”_estack\” in current context.”
[ 1340 ms] -data-evaluate-expression “&__StackLimit”
[ 1341 ms] ^error,msg=”No symbol \”__StackLimit\” in current context.”
Cannot resolve the address of _estack. Skipping stack pointer validity check.
[ 1341 ms] -exec-continue
[ 1344 ms] ^running
[ 1344 ms] *running,thread-id=”all”
[ 4503 ms] ~”\nProgram received signal ”
[ 4504 ms] ~”SIGTRAP, Trace/breakpoint trap.\n”
[ 4505 ms] ~”0x004019c8 in ?? ()\n”
[ 4510 ms] *stopped,reason=”signal-received”,signal-name=”SIGTRAP”,signal-meaning=”Trace/breakpoint trap”,frame={addr=”0x004019c8″,func=”??”,args=[]},thread-id=”1″,stopped-threads=”all”
[ 4534 ms] -stack-list-frames –thread 1
[ 4564 ms] ^done,stack=[frame={level=”0″,addr=”0x004019c8″,func=”??”},frame={level=”1″,addr=”0xfffffff9″,func=”<signal handler called>”},frame={level=”2″,addr=”0x00007c64″,func=”??”},frame={level=”3″,addr=”0xffffffff”,func=”??”}]
[ 4564 ms] -stack-list-arguments –thread 1 0
[ 4566 ms] ^done,stack-args=[frame={level=”0″,args=[]},frame={level=”1″,args=[]},frame={level=”2″,args=[]},frame={level=”3″,args=[]}]
[ 4614 ms] -data-evaluate-expression “sizeof(void *)”
[ 4618 ms] ^done,value=”4″
[ 4629 ms] -data-evaluate-expression “sizeof(int)”
[ 4641 ms] ^done,value=”4″
[ 4641 ms] ^done,value=”4″
[ 4641 ms] -data-evaluate-expression “sizeof(short)”
[ 4642 ms] ^done,value=”2″
[ 4642 ms] -data-evaluate-expression “sizeof(long)”
[ 4643 ms] ^done,value=”4″
[ 4643 ms] -data-evaluate-expression “sizeof(long long)”
[ 4644 ms] ^done,value=”8″
[ 4644 ms] -data-evaluate-expression “sizeof(char)”
[ 4645 ms] ^done,value=”1″
[ 4645 ms] -data-evaluate-expression “sizeof(wchar_t)”
[ 4647 ms] ^error,msg=”No symbol \”wchar_t\” in current context.”
[ 4647 ms] -data-evaluate-expression “sizeof(float)”
[ 4648 ms] ^done,value=”4″
[ 4648 ms] -data-evaluate-expression “sizeof(double)”
[ 4649 ms] ^done,value=”8″
[ 4649 ms] -data-evaluate-expression “sizeof(long double)”
[ 4650 ms] ^done,value=”8″
[ 4798 ms] -stack-list-frames –thread 1
[ 4800 ms] ^done,stack=[frame={level=”0″,addr=”0x004019c8″,func=”??”},frame={level=”1″,addr=”0xfffffff9″,func=”<signal handler called>”},frame={level=”2″,addr=”0x00007c64″,func=”??”},frame={level=”3″,addr=”0xffffffff”,func=”??”}]
[ 4818 ms] -data-list-register-names
[ 4826 ms] ^done,register-names=[“r0″,”r1″,”r2″,”r3″,”r4″,”r5″,”r6″,”r7″,”r8″,”r9″,”r10″,”r11″,”r12″,”sp”,”lr”,”pc”,””,””,””,””,””,””,””,””,””,”xpsr”,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,”MSP”,”PSP”,”PRIMASK”,”BASEPRI”,”FAULTMASK”,”CONTROL”,”FPSCR”,”s0″,”s1″,”s2″,”s3″,”s4″,”s5″,”s6″,”s7″,”s8″,”s9″,”s10″,”s11″,”s12″,”s13″,”s14″,”s15″,”s16″,”s17″,”s18″,”s19″,”s20″,”s21″,”s22″,”s23″,”s24″,”s25″,”s26″,”s27″,”s28″,”s29″,”s30″,”s31″]
[ 4826 ms] -var-create –frame 0 –thread 1 – * “!$lineinfo”
[ 4832 ms] ^done,name=”var1″,numchild=”0″,value=”1″,type=”int”,has_more=”0″July 27, 2016 at 18:27 #8714supportKeymasterHi,
First of all, if you need to extend your trial, please simply contact our support via the contact form and they will give you a trial extension voucher.
Regarding the memory map, first of all can you try making a basic program that will turn some LED on to see whether the program ever gets executed correctly? If yes, the problem is related to debugging settings. If no, it’s related to compiling or linking.
You can indeed define the memory addresses for your code and data by creating a linker script file (you can search any of the VisualGDB BSPs for .lds files to get an example linker script) and then specify the path to it in VisualGDB Project Properties. The peripheral definition files are only used to visualize the peripheral registers and do not affect the functionality of your program.
You can also have a quick look at this tutorial if you have not done this already. It might explain some steps you could be missing.
August 18, 2016 at 16:07 #8882cwitParticipantHi,
I now have time to look at this again.
I have started all over and made two projects. One using the ’embedded’ template and one using the ‘mingw/cygwin’ one. I also have a linker script file, and I can see that the memory segments are correct. But the linker script file ought not to be necessary. We have a complete make system set up that uses MinGW32, which works fine and generates correct elf and bin files. All we need VisualGDB to do is provide us with better means of debugging.
Existing make-file environment:
Build: OK
Load: OK
Runs: OKMingw/CygWin:
Build: OK
Load: Tries to start the Segger GDB server and load image but fails.
Runs: –Embedded:
Build: OK
Load: OK
Runs: Does not run correctly. Seems to be starting at a valid address but ends up in endless loop. Symbols are loaded but not able to debug in source code – only assembler.What can do to move forward?
August 18, 2016 at 18:17 #8884supportKeymasterFirst of all, could you try debugging your existing ELF file with the Quick Debug feature? If this does not work, could you please attach the contents of the Segger J-Link window and the GDB Session window (switch view to ‘All GDB interaction’ so that we could see the internally sent commands)? This should explain what is going on.
September 9, 2016 at 12:41 #9026cwitParticipantHi,
We have set up VS2015 with VisualGDB on a different computer and taken an old VisualGDB setup. This we were able to run without any problems. But taking the exact setup and running it on my computer fails. So, there must be something installed on my computer that somehow conflicts with VisualGDB preventing it from running correctly. VisualGDB tries to read from invalid addresses on my computer, but loads the FW into the correct memory area.
Running Atmel Studio works fine, so I know that my HW setup works correctly. I could suspect something within VS but I can’t say for sure.
September 11, 2016 at 18:45 #9033supportKeymasterOK, could you please share the error message you are currently getting? We should be able to suggest more once we see it.
September 12, 2016 at 13:08 #9039cwitParticipantI will try to get the exact error message for you.
But, we do have some news. Friday afternoon we discovered that it works with an old toolchain from Mentor Graphics (codesourcery). This makes me think that there could be some settings in our make files that somehow breaks something in some toolchains.
As we now know that we can get VisualGDB to work fine with VS2015, we are trying to get approval to purchase new VisualGDB licences.
But, we would of course very much like to find out if we can it all to work with other toolchains as well.
September 12, 2016 at 22:02 #9045supportKeymasterGood to know it works. If you ever need our help to pinpoint the toolchain issue, feel free to share the error messages you get and we will give our best advice on figuring out what could be the cause.
August 10, 2017 at 20:24 #11988erasmusParticipantWe are using Nordic nRF51822 and have a VS2015 project used to build our app (connect with Jlink, latest segger tools installed 6.16d). Its worked fine -until yesterday. Pulled project out of GIT, opened project and VGDB updated the toolchain to latest (Tried to revert to previous version of tools, but still get same error message. ). Now we get following error message when trying to load code after build.
“\tEntry point: 0x1337c\n”
~”\t0x00003800 – 0x00023030 is .text\n”
~”\t0x00023030 – 0x00023038 is .ARM.exidx\n”
~”\t0x20000000 – 0x2000034c is .data\n”
~”\t0x2000034c – 0x2000036c is .bootloaderSettings\n”
~”\t0x20000370 – 0x20003ce8 is .bss\n”
^done
-data-evaluate-expression “&_estack”
^error,msg=”No symbol \”_estack\” in current context.”
-data-evaluate-expression “&__StackLimit”
^done,value=”0x20004000 <error: Cannot access memory at address 0x20004000>”
-var-create – * “*((void **)0x20003ffc)”
^done,name=”var1″,numchild=”0″,value=””,type=”void *”,has_more=”0″
-var-evaluate-expression “var1″
^done,value=””
-exec-continue
^error,msg=”The program is not being run.” -
AuthorPosts
- You must be logged in to reply to this topic.