Break at address "0xXXXXXX" with no debug information available, or outside of program code

Abhishek Behera picture Abhishek Behera · Mar 8, 2018 · Viewed 7.1k times · Source

Configuration:

Using Nucleo-L476RG. Using GNU ARM Eclipse. I have generated a minimalist code from STM32CubeMX. I have flashed J-link driver in my on board ST-Link.

Have been trying to run debugger for my code but my program counter is not setting at main().Instead it fails to read a certain memory address. The error "Break at address "0xXXXXXXXX" with no debug information available, or outside of program code." appears.

I've included the screenshot and debugger log in which we can see the error.

Please help

IMAGES:
https://ibb.co/bBRHxn https://ibb.co/mGDKA7 https://ibb.co/mE4gOS https://ibb.co/fh5AHn https://ibb.co/jNFMOS https://ibb.co/ibmT3S https://ibb.co/gpJaiS https://ibb.co/jgaMOS

LOGS:

SEGGER J-Link GDB Server V6.30f Command Line Version



JLinkARM.dll V6.30f (DLL compiled Mar  2 2018 17:29:18)



Command line: -if swd -device STM32L476RG -endian little -speed 1000 -port 2331 -swoport 2332 -telnetport 2333 -vd -ir -localhostonly 1 -singlerun -strict -timeout 0 -nogui


-----GDB Server start settings-----

GDBInit file:                  none  
GDB Server Listening port:     2331  
SWO raw output listening port: 2332  
Terminal I/O port:             2333  
Accept remote connection:      localhost only  
Generate logfile:              off  
Verify download:               on  
Init regs on start:            on  
Silent mode:                   off  
Single run mode:               on  
Target connection timeout:     0 ms  
------J-Link related settings------  
J-Link Host interface:         USB  
J-Link script:                 none  
J-Link settings file:          none  
------Target related settings------  
Target device:                 STM32L476RG  
Target interface:              SWD  
Target interface speed:        1000kHz  
Target endian:                 little  

Connecting to J-Link...  
J-Link is connected.  
Firmware: J-Link STLink V21 compiled Jun 26 2017 10:35:16  
Hardware: V1.00  
S/N: 770526094  
Checking target voltage...  
Target voltage: 3.30 V  
Listening on TCP/IP port 2331  
Connecting to target...  
WARNING: T-bit of XPSR is 0 but should be 1. Changed to 1.  
Connected to target  
Waiting for GDB connection...Connected to 127.0.0.1  
Reading all registers  
Read 4 bytes @ address 0x00000000 (Data = 0x4C05B510)  
Read 2 bytes @ address 0x00000000 (Data = 0xB510)  
Received monitor command: speed 1000  
Target interface speed set to 1000 kHz  
Received monitor command: clrbp  
Received monitor command: reset  
Resetting target  
Received monitor command: halt  
Halting target CPU...  
...Target halted (PC = 0xB9337822)  
Received monitor command: regs  
R0 = 00000000, R1 = 00000000, R2 = 00000000, R3 = 00000000  
R4 = 00000000, R5 = 00000000, R6 = 00000000, R7 = 00000000  
R8 = 00000000, R9 = 00000000, R10= 00000000, R11= 00000000  
R12= 00000000, R13= 4C05B510, MSP= 4C05B510, PSP= 00000000  
R14(LR) = FFFFFFFF, R15(PC) = B9337822  
XPSR 01000000, APSR 00000000, EPSR 01000000, IPSR 00000000  
CFBP 00000000, CONTROL 00, FAULTMASK 00, BASEPRI 00, PRIMASK 00  
Reading all registers  
Received monitor command: speed auto  
Select auto target interface speed (2000 kHz)  
Received monitor command: flash breakpoints 1  
Flash breakpoints enabled  
Received monitor command: semihosting enable  
Semi-hosting enabled (Handle on BKPT)  
Received monitor command: semihosting IOClient 1  
Semihosting I/O set to TELNET Client  
Received monitor command: SWO DisableTarget 0xFFFFFFFF  
SWO disabled successfully.  
Received monitor command: SWO EnableTarget 0 0 0x1 0  
SWO enabled successfully.  
Read 4 bytes @ address 0xB9337822 (Data = 0x00000000)  
Read 2 bytes @ address 0xB9337822 (Data = 0x0000)  
Downloading 88 bytes @ address 0x08000000 - Verified OK  
Downloading 8 bytes @ address 0x08000058 - Verified OK  
Downloading 8 bytes @ address 0x08000060 - Verified OK  
Comparing flash   [....................] Done.  
Verifying flash   [....................] Done.  
Writing register (PC = 0x08000000)  
Read 4 bytes @ address 0x08000000 (Data = 0x4C05B510)  
Read 2 bytes @ address 0x08000000 (Data = 0xB510)  
Received monitor command: clrbp  
Received monitor command: reset  
Resetting target  
Received monitor command: halt  
Halting target CPU...  
...Target halted (PC = 0xB9337822)  
Received monitor command: regs  
R0 = 00000000, R1 = 00000000, R2 = 00000000, R3 = 00000000  
R4 = 00000000, R5 = 00000000, R6 = 00000000, R7 = 00000000  
R8 = 00000000, R9 = 00000000, R10= 00000000, R11= 00000000  
R12= 00000000, R13= 4C05B510, MSP= 4C05B510, PSP= 00000000  
R14(LR) = FFFFFFFF, R15(PC) = B9337822  
XPSR 01000000, APSR 00000000, EPSR 01000000, IPSR 00000000  
CFBP 00000000, CONTROL 00, FAULTMASK 00, BASEPRI 00, PRIMASK 00  
Reading all registers  
Starting target CPU...  
WARNING: T-bit of XPSR is 0 but should be 1. Changed to 1.  
...Target halted (DBGRQ, PC = 0xF3AF4804)  
Reading all registers  
WARNING: Failed to read memory @ address 0xF3AF4804  
WARNING: Failed to read memory @ address 0x4C05B50C  
Reading 64 bytes @ address 0x4C05B500  
WARNING: Failed to read memory @ address 0x4C05B500  
WARNING: Failed to read memory @ address 0x4C05B508  
Reading 64 bytes @ address 0x4C05B500  
WARNING: Failed to read memory @ address 0x4C05B500  
WARNING: Failed to read memory @ address 0x4C05B508  
Reading 64 bytes @ address 0xF3AF4800  
WARNING: Failed to read memory @ address 0xF3AF4800  
WARNING: Failed to read memory @ address 0xF3AF4804  
Reading 64 bytes @ address 0xF3AF4800  
WARNING: Failed to read memory @ address 0xF3AF4800  
WARNING: Failed to read memory @ address 0xF3AF4804  
Reading 64 bytes @ address 0xF3AF4800  
WARNING: Failed to read memory @ address 0xF3AF4800  
WARNING: Failed to read memory @ address 0xF3AF4806  

Answer

Green picture Green · Jul 21, 2018

I encountered the same issue when using j-link to debug my Board(STM32F407ZG), after changing the startup_stm32f407xx.s into startup_stm32f407xx.S(with uppercase 's' ), the problem disappeared. The reason might be gcc handles .s and .S in different ways

Change your startup_xx.s file suffix to uppercase.