This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Setting breakpoint when target is running



With CCS v4 I am unable to set a breakpoint when the target is running. This worked well in CCS 3.3.

This was reported by a customer and I verified it on a F28335 eZdsp. To duplicate, load code onto the target, run and then try to set a breakpoint which you know should be hit (like inside a ISR). This works in CCS 3.3 but in CCS 4 it doesn't even allow setting of the breakpoint.

Is there a reason for this behavior, or a different way to do it that I am missing, or is it a bug?

Thanks
Aarti

  • The reason for the behavior is that setting a breakpoint is an intrusive behavior when doing stop-mode debug.  That is, to set the breakpoint CCS is required to halt the target, update the opcode, and then start it running again.  In CCS 3.3 this was all done behind the scenes and most people never realized what was happening.  A similar story holds for refreshing a memory/watch window at run-time.  This intrusive behavior could cause serious issues since it would destroy real-time behavior (momentarily).  That's why we no longer do so, i.e. could be dangerous when controlling a motor or power supply.

    I believe if you're in real-time mode that you can do this.  At one time there was talk about making real-time mode the default debugging mode.  I believe they were having a hard time with the implementation.  Perhaps someone from the team can provide an update.

  • The plan was not to support realtime mode by default, but to allow non-intrusive accesses while running without having to explicitly enable realtime mode (which has other consequences on the operation of the target).  Someone from emulation should be able to give a more precise date, but the soonest I've heard of is CCS 4.2, and then only for some targets.

    As for the original question, there is an option to halt the target before an access is made.  If that's enabled, then the same behaviour that existed in CCS 3.3 will take effect (ie it will appear to be possible to refresh and set/clear breakpoints while running, but in reality the target will be halted briefly each time).  If your application does not have realtime constraints, this might be acceptable for you.

  • Hi

    (CCsv4.1.2)

    I've been able to set breakpoints when the target is running by enabling Target->Debug -> select Target tab -> Realtime Options -> check "Halt the target before any debugger access".

    Then relaunch for the change to take effect.

    Seems to work.

    Cheers

  • This no longer seems to work on CCSv4.2.4. (or maybe this is an issue related to the Spec Dig XDS560v2 STM)

  • Eddie,

    The option still exists in 4.2.4 and I've verified it works.  Please make sure the option is still set in your install.  After a launch, go to Tools->Debugger Options->Generic Debugger Options, then scroll down to the "Realtime Options" group and select the first check box "Halt the target before any debugger accesses (will impact servicing of interrupts)".  Assuming it works, you can select "Remember My Settings" at the bottom to keep it set for that core.

    Don't forget that options are per-core.  If you have a multi-core device, or use several different targets, you'll have to set it globally (Window->Preferences->CCS->Debug->Debugger Options->Generic->Halt the target before any debugger accesses (will impact servicing of interrupts)), or go through the above procedure for each core.

    Darian

  • Hi,

    the "Halt the target before any debugger accesses (will impact servicing of interrupts)" check box has moved to Run->Debug Configurations->Target->Auto Run and Launch Options->Realtime Options in CCSv6, right?
    I checked it and restarted CCS, verfified the box is still checked and then started debugging. I still cannot set breakpoints while the target is running (InCircuit Debug Interface as well as XDS100v2).
    The error message is "Error enabling this function: Target Access Failed". Any ideas?
    My target is a TIVA TM4C123x MCU.

    Best regards,
    Julian
  • Julian,

    Could you collect a debug server log (http://processors.wiki.ti.com/index.php/Troubleshooting_CCSv6#CCS_Diagnostic_Logs) of this?  Ideally, start the logging after the target has started running but before you try to set a breakpoint.

    Darian

  • Darian,

    thanks for the quick reply. Here comes the log:

    0x00001C3C 472768 3 XPCOM C: ( (dsIBreakpointManager*)35E875E0 )->createBreakpoint( 0x00000000, 36B0F518 )
    0x00001C3C 472768 3 XPCOM R: ( (dsIBreakpointManager*)35E875E0 )->createBreakpoint( 0x00000000, *36B0F518 = 3C926080 ) = 0x00000000
    0x00001C3C 472768 3 XPCOM C: ( (dsIBreakpointManager*)35E875E0 )->createLocation( 36B0F508 )
    0x00001C3C 472768 3 XPCOM R: ( (dsIBreakpointManager*)35E875E0 )->createLocation( *36B0F508 = 385EA660 ) = 0x00000000
    0x00001C3C 472768 3 XPCOM C: ( (dsIBreakpointLocation*)385EA660 )->setSourceLocation( , 0x0000003C, C:\CCS_WORKSPACE\FPU_TEST\system\main\main.c, true )
    0x00001C3C 472768 4 OFS_DWARF D: Dwarf line number info (section .debug_line, offset 0x629): Header:
    0x00001C3C 472768 4 OFS_DWARF D: total length: 87
    0x00001C3C 472768 4 OFS_DWARF D: uiVersion: 3
    0x00001C3C 472768 4 OFS_DWARF D: Line Header Length: 44
    0x00001C3C 472768 4 OFS_DWARF D: minimum instruction length: 2
    0x00001C3C 472768 4 OFS_DWARF D: default is_stmt: 1
    0x00001C3C 472768 4 OFS_DWARF D: line base: -3
    0x00001C3C 472768 4 OFS_DWARF D: line range: 12
    0x00001C3C 472768 4 OFS_DWARF D: opcode base: 13
    0x00001C3C 472768 4 OFS_DWARF D: opcode args:
    0x00001C3C 472768 4 OFS_DWARF D: 0 1 1 1 1 0 0 0 0 0 0 1
    0x00001C3C 472768 4 OFS_DWARF D: 0x00000645: directory ""
    0x00001C3C 472768 4 OFS_DWARF D: 0x0000065b: file "../system/main/main.c":
    0x00001C3C 472768 3 XPCOM R: ( (dsIBreakpointLocation*)385EA660 )->setSourceLocation( , 0x0000003C, C:\CCS_WORKSPACE\FPU_TEST\system\main\main.c, true ) = 0x00000000
    0x00001C3C 472768 3 XPCOM C: ( (dsIBreakpoint*)3C926080 )->setPrecisePCBreak( 385EA660 )
    0x00001C3C 472768 3 COM_DBG_IF C: class CoBreakpointManager::OnSourceFileResolve()
    0x00001C3C 472768 3 XPCOM C: ( (dsIObjectEventCallback*)3C8013D0 )->onEvent( 36027528 )
    0x00001C3C 472768 3 XPCOM C: ( (nsISupports*)3602752C )->queryInterface( 384066D0, 36B0E108 )
    0x00001C3C 472768 3 XPCOM R: ( (nsISupports*)3602752C )->queryInterface( 384066D0, *36B0E108 = 36027528 ) = 0x00000000
    0x00001C3C 472768 3 XPCOM C: ( (dsISourceFileResolveEventData*)36027528 )->getSourceFile( 36B0E088 )
    0x00001C3C 472768 3 XPCOM R: ( (dsISourceFileResolveEventData*)36027528 )->getSourceFile( *36B0E088 = C:\CCS_WORKSPACE\FPU_TEST\system\main\main.c ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsISymbolPackage*)38277E40 )->NumSymbolFiles( 36B0DFD8 )
    0x00001C3C 472770 3 XPCOM R: ( (dsISymbolPackage*)38277E40 )->NumSymbolFiles( *36B0DFD8 = 0x00000001 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsISymbolPackage*)38277E40 )->getSymbolFileSymbolPackage( 0x00000000, 36B0DFD8 )
    0x00001C3C 472770 3 XPCOM R: ( (dsISymbolPackage*)38277E40 )->getSymbolFileSymbolPackage( 0x00000000, *36B0DFD8 = 3C91F970 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsISymbolPackage*)3C91F970 )->getSymbolFileName( 0x00000000, 36B0DFE8 )
    0x00001C3C 472770 3 XPCOM R: ( (dsISymbolPackage*)3C91F970 )->getSymbolFileName( 0x00000000, *36B0DFE8 = C:/CCS_WORKSPACE\FPU_TEST\Debug\FPU_TEST.out ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsISymbolPackage*)3C91F970 )->lookupFileName( C:\CCS_WORKSPACE\FPU_TEST\system\main\main.c, 36B0DFD8 )
    0x00001C3C 472770 3 XPCOM R: ( (dsISymbolPackage*)3C91F970 )->lookupFileName( C:\CCS_WORKSPACE\FPU_TEST\system\main\main.c, *36B0DFD8 = 35FB06A8 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIFileInfo*)35FB06A8 )->getSourceFileName( 36B0DF68 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIFileInfo*)35FB06A8 )->getSourceFileName( *36B0DF68 = 3C8DE8B8 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsISourceFileName*)3C8DE8B8 )->getCompilationPath( 36B0DF68 )
    0x00001C3C 472770 3 XPCOM R: ( (dsISourceFileName*)3C8DE8B8 )->getCompilationPath( *36B0DF68 = C:\CCS_WORKSPACE\FPU_TEST\Debug ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsISourceFileName*)3C8DE8B8 )->getRelativePath( 36B0DF68 )
    0x00001C3C 472770 3 XPCOM R: ( (dsISourceFileName*)3C8DE8B8 )->getRelativePath( *36B0DF68 = ../system/main/main.c ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsISourceFileResolveEventData*)36027528 )->setResolvedSourceFile( C:\CCS_WORKSPACE\FPU_TEST\Debug/../system/main/main.c, C:/CCS_WORKSPACE\FPU_TEST\Debug\FPU_TEST.out )
    0x00001C3C 472770 3 XPCOM R: ( (dsISourceFileResolveEventData*)36027528 )->setResolvedSourceFile( C:\CCS_WORKSPACE\FPU_TEST\Debug/../system/main/main.c, C:/CCS_WORKSPACE\FPU_TEST\Debug\FPU_TEST.out ) = 0x00000000
    0x00001C3C 472770 3 XPCOM R: ( (dsIObjectEventCallback*)3C8013D0 )->onEvent( 36027528 ) = 0x00000000
    0x00001C3C 472770 3 COM_DBG_IF R: class CoBreakpointManager::OnSourceFileResolve()
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpoint*)3C926080 )->setPrecisePCBreak( 385EA660 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpoint*)3C926080 )->BreakpointProperties( 36B0F508 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpoint*)3C926080 )->BreakpointProperties( *36B0F508 = 3C9265E8 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpointProperties*)3C9265E8 )->Count( 36B0F4A8 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpointProperties*)3C9265E8 )->Count( *36B0F4A8 = 0x00000003 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpointProperties*)3C9265E8 )->item( 0x00000002, 36B0F4A8 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpointProperties*)3C9265E8 )->item( 0x00000002, *36B0F4A8 = 383CD4F0 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpointProperty*)383CD4F0 )->getPropertyType( 36B0F478 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpointProperty*)383CD4F0 )->getPropertyType( *36B0F478 = 0x00000000 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpointProperty*)383CD4F0 )->Name( 36B0F4A8 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpointProperty*)383CD4F0 )->Name( *36B0F4A8 = Miscellaneous ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpointProperty*)383CD4F0 )->SubBreakpointProperties( 36B0F4D8 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpointProperty*)383CD4F0 )->SubBreakpointProperties( *36B0F4D8 = 3C926630 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpointProperties*)3C926630 )->Count( 36B0F4A8 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpointProperties*)3C926630 )->Count( *36B0F4A8 = 0x00000002 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpointProperties*)3C926630 )->item( 0x00000001, 36B0F4A8 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpointProperties*)3C926630 )->item( 0x00000001, *36B0F4A8 = 35FAADAC ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpointProperty*)35FAADAC )->getPropertyType( 36B0F478 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpointProperty*)35FAADAC )->getPropertyType( *36B0F478 = 0x00000005 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpointProperty*)35FAADAC )->queryInterface( 0031E238, 36B0F478 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpointProperty*)35FAADAC )->queryInterface( 0031E238, *36B0F478 = 35FAADA8 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpointStringProperty*)35FAADA8 )->Name( 36B0F4A8 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpointStringProperty*)35FAADA8 )->Name( *36B0F4A8 = Name ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpointStringProperty*)35FAADA8 )->Value( Breakpoint )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpointStringProperty*)35FAADA8 )->Value( Breakpoint ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpoint*)3C926080 )->BreakpointProperties( 3C9265E8 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpoint*)3C926080 )->BreakpointProperties( 3C9265E8 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpointManager*)35E875E0 )->add( 3C926080 )
    0x00001C3C 472770 3 COM_DBG_IF C: class CoBreakpointManager::OnBreakpointAdded()
    0x00001C3C 472770 3 XPCOM C: ( (dsIObjectEventCallback*)3C801210 )->onEvent( 3C926480 )
    0x00001C3C 472770 3 XPCOM C: ( (nsISupports*)3C926488 )->queryInterface( 35FA0548, 36B0E208 )
    0x00001C3C 472770 3 XPCOM R: ( (nsISupports*)3C926488 )->queryInterface( 35FA0548, *36B0E208 = 3C926480 ) = 0x00000000
    0x00001C3C 472770 3 XPCOM C: ( (dsIBreakpoint*)3C926480 )->IsSystem( 36B0E238 )
    0x00001C3C 472770 3 XPCOM R: ( (dsIBreakpoint*)3C926480 )->IsSystem( *36B0E238 = false ) = 0x00000000
    0x00001C3C 472771 3 XPCOM R: ( (dsIObjectEventCallback*)3C801210 )->onEvent( 3C926480 ) = 0x00000000
    0x00001C3C 472771 3 COM_DBG_IF R: class CoBreakpointManager::OnBreakpointAdded()
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpointManager*)35E875E0 )->add( 3C926080 ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926080 )->IsEnabled( 36B0F578 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926080 )->IsEnabled( *36B0F578 = false ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926080 )->IsEnabled( 36B0F578 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926080 )->IsEnabled( *36B0F578 = false ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926080 )->IsAdded( 36B0F578 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926080 )->IsAdded( *36B0F578 = true ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpointManager*)35E875E0 )->enable( 3C926080, 36B0F568 )
    0x00001C3C 472771 3 CORTEX_M4_0 CI C: GetProcessorID()
    0x00001C3C 472771 3 CORTEX_M4_0 CI R: GetProcessorID() = 0x75803800
    0x00001C3C 472771 3 CORTEX_M4_0 TA C: TargetPause()
    0x00001C3C 472771 3 CORTEX_M4_0 TA R: TargetPause() = -1
    0x00001C3C 472771 3 CORTEX_M4_0 TA C: TargetResume()
    0x00001C3C 472771 3 CORTEX_M4_0 TA R: TargetResume() = 0
    0x00001C3C 472771 3 CORTEX_M4_0 TA C: TargetPause()
    0x00001C3C 472771 3 CORTEX_M4_0 TA R: TargetPause() = -1
    0x00001C3C 472771 3 CORTEX_M4_0 TA C: GetRegisterId( FP_COMP0, 36B0CFE4 )
    0x00001C3C 472771 3 CORTEX_M4_0 TA R: GetRegisterId( FP_COMP0, *36B0CFE4 = 0x64100008 ) = 0
    0x00001C3C 472771 3 CORTEX_M4_0 TA C: RegisterWrite( 0x64100008, 0x8000084D )
    0x00001C3C 472771 3 CORTEX_M4_0 TA R: RegisterWrite( 0x64100008, 0x8000084D ) = -4
    0x00001C3C 472771 3 CORTEX_M4_0 TA C: TargetResume()
    0x00001C3C 472771 3 CORTEX_M4_0 TA R: TargetResume() = 0
    0x00001C3C 472771 3 CORTEX_M4_0 TA C: GetState()
    0x00001C3C 472771 3 CORTEX_M4_0 TA R: GetState() = 2
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpointManager*)35E875E0 )->enable( 3C926080, *36B0F568 = 35FAAF3C ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpointException*)35FAAF3C )->isExpected( 36B0F538 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpointException*)35FAAF3C )->isExpected( *36B0F538 = false ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpointException*)35FAAF3C )->getExplanation( 36B0F528 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpointException*)35FAAF3C )->getExplanation( *36B0F528 = Error enabling this function: Target Access Failed ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926080 )->UniqueIdentifier( 36B0F568 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926080 )->UniqueIdentifier( *36B0F568 = 0x0000004D ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926080 )->Identifier( 36B0F538 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926080 )->Identifier( *36B0F538 = 0x3C54C3D0 ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926480 )->Identifier( 36B0F538 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926480 )->Identifier( *36B0F538 = 0x3C54C3D0 ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926480 )->UniqueIdentifier( 36B0F528 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926480 )->UniqueIdentifier( *36B0F528 = 0x0000004D ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926480 )->DescriptionBitfield( 36B0F578 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926480 )->DescriptionBitfield( *36B0F578 = 0x00000006 ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926480 )->DescriptionBitfield( 36B0F578 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926480 )->DescriptionBitfield( *36B0F578 = 0x00000006 ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926480 )->DescriptionBitfield( 36B0F578 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926480 )->DescriptionBitfield( *36B0F578 = 0x00000006 ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926480 )->DescriptionBitfield( 36B0F578 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926480 )->DescriptionBitfield( *36B0F578 = 0x00000006 ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926480 )->Type( 36B0F4E8 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926480 )->Type( *36B0F4E8 = 0x00000001 ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926480 )->DescriptionBitfield( 36B0F4C8 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926480 )->DescriptionBitfield( *36B0F4C8 = 0x00000006 ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926480 )->IsEnabled( 36B0F4E8 )
    0x00001C3C 472771 3 XPCOM R: ( (dsIBreakpoint*)3C926480 )->IsEnabled( *36B0F4E8 = false ) = 0x00000000
    0x00001C3C 472771 3 XPCOM C: ( (dsIBreakpoint*)3C926480 )->getSerializationData( 36B0F478, 36B0F488 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIBreakpoint*)3C926480 )->getSerializationData( *36B0F478 = , *36B0F488 = ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIBreakpoint*)3C926480 )->Locations( 36B0F418 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIBreakpoint*)3C926480 )->Locations( *36B0F418 = 35FAAEA8 ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIBreakpointLocations*)35FAAEA8 )->Count( 36B0F428 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIBreakpointLocations*)35FAAEA8 )->Count( *36B0F428 = 0x00000001 ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIBreakpointLocations*)35FAAEA8 )->item( 0x00000000, 36B0F428 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIBreakpointLocations*)35FAAEA8 )->item( 0x00000000, *36B0F428 = 383CD3A0 ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIBreakpointLocation*)383CD3A0 )->isSymbolicBased( 36B0F428 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIBreakpointLocation*)383CD3A0 )->isSymbolicBased( *36B0F428 = false ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIBreakpointLocation*)383CD3A0 )->isSourceBased( 36B0F428 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIBreakpointLocation*)383CD3A0 )->isSourceBased( *36B0F428 = true ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIBreakpointLocation*)383CD3A0 )->hasSourceLocation( 36B0F428 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIBreakpointLocation*)383CD3A0 )->hasSourceLocation( *36B0F428 = true ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIBreakpointLocation*)383CD3A0 )->getSourceLocation( 36B0F418, 36B0F428, 36B0F438 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIBreakpointLocation*)383CD3A0 )->getSourceLocation( *36B0F418 = C:/CCS_WORKSPACE\FPU_TEST\Debug\FPU_TEST.out, *36B0F428 = 0x0000003C, *36B0F438 = C:\CCS_WORKSPACE\FPU_TEST\Debug/../system/main/main.c ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIBreakpointLocation*)383CD3A0 )->hasSymbolicLocation( 36B0F428 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIBreakpointLocation*)383CD3A0 )->hasSymbolicLocation( *36B0F428 = true ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIBreakpointLocation*)383CD3A0 )->getSymbolicLocation( 0x00000000, 36B0F3F8 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIBreakpointLocation*)383CD3A0 )->getSymbolicLocation( 0x00000000, *36B0F3F8 = $C$L3 ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIBreakpointLocation*)383CD3A0 )->hasAddressLocation( 36B0F428 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIBreakpointLocation*)383CD3A0 )->hasAddressLocation( *36B0F428 = true ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIBreakpointLocation*)383CD3A0 )->getAddressLocation( 0x00000000, 36B0F3B8 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIBreakpointLocation*)383CD3A0 )->getAddressLocation( 0x00000000, *36B0F3B8 = 3C926798 ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsITargetLocation*)3C926798 )->getAddress( 36B0F3C8 )
    0x00001C3C 472772 3 XPCOM R: ( (dsITargetLocation*)3C926798 )->getAddress( *36B0F3C8 = 0x000000000000084E ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIBreakpointLocation*)383CD3A0 )->Page( 36B0F428 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIBreakpointLocation*)383CD3A0 )->Page( *36B0F428 = 0x00000000 ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsISymbolPackage*)38277E40 )->getSymbolFileSymbolPackage( 0x00000000, 36B0F358 )
    0x00001C3C 472772 3 XPCOM R: ( (dsISymbolPackage*)38277E40 )->getSymbolFileSymbolPackage( 0x00000000, *36B0F358 = 3C91FBA0 ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsISymbolPackage*)3C91FBA0 )->lookupFunctionAddress( 0x0000084E, 36B0F358 )
    0x00001C3C 472772 3 XPCOM R: ( (dsISymbolPackage*)3C91FBA0 )->lookupFunctionAddress( 0x0000084E, *36B0F358 = 3C926678 ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIFunctionInfo*)3C926678 )->Name( 36B0F358 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIFunctionInfo*)3C926678 )->Name( *36B0F358 = main ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsIFunctionInfo*)3C926678 )->StaticLineInfo( 36B0F348 )
    0x00001C3C 472772 3 XPCOM R: ( (dsIFunctionInfo*)3C926678 )->StaticLineInfo( *36B0F348 = 3C91FAB0 ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsILineInfo*)3C91FAB0 )->lookupLineByAddress( 0x000000000000084E, 36B0F348, 36B0F358 )
    0x00001C3C 472772 3 XPCOM R: ( (dsILineInfo*)3C91FAB0 )->lookupLineByAddress( 0x000000000000084E, *36B0F348 = 0x00000009, *36B0F358 = true ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsILineInfo*)3C91FAB0 )->getSourceFileName( 0x00000009, 36B0F318 )
    0x00001C3C 472772 3 XPCOM R: ( (dsILineInfo*)3C91FAB0 )->getSourceFileName( 0x00000009, *36B0F318 = 3C8DE918 ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsISourceFileName*)3C8DE918 )->getRelativePath( 36B0F328 )
    0x00001C3C 472772 3 XPCOM R: ( (dsISourceFileName*)3C8DE918 )->getRelativePath( *36B0F328 = ../system/main/main.c ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsISourceFileName*)3C8DE918 )->getCompilationPath( 36B0F328 )
    0x00001C3C 472772 3 XPCOM R: ( (dsISourceFileName*)3C8DE918 )->getCompilationPath( *36B0F328 = C:\CCS_WORKSPACE\FPU_TEST\Debug ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsISourceFileName*)3C8DE918 )->getRelativePath( 36B0F328 )
    0x00001C3C 472772 3 XPCOM R: ( (dsISourceFileName*)3C8DE918 )->getRelativePath( *36B0F328 = ../system/main/main.c ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsILineInfo*)3C91FAB0 )->getLineNum( 0x00000009, 36B0F358 )
    0x00001C3C 472772 3 XPCOM R: ( (dsILineInfo*)3C91FAB0 )->getLineNum( 0x00000009, *36B0F358 = 0x0000003C ) = 0x00000000
    0x00001C3C 472772 3 XPCOM C: ( (dsISymbolPackage*)38277E40 )->getSymbolFileName( 0x00000000, 36B0F3A8 )
    0x00001C3C 472772 3 XPCOM R: ( (dsISymbolPackage*)38277E40 )->getSymbolFileName( 0x00000000, *36B0F3A8 = C:/CCS_WORKSPACE\FPU_TEST\Debug\FPU_TEST.out ) = 0x00000000
    0x00001FDC 472803 4 CS_DAP_0 POLL I: TimeToPollAgain() target is idle and needs polling in 0 ms
    0x00001FDC 472803 3 CS_DAP_0 POLL C: Polling with state STATE_IDLE and status EVENT_DSP_HALT
    0x00001FDC 472803 3 CS_DAP_0 SYNC C: IsSyncReady(): syncAction = 0x00000000, syncSetup = 0x00000000, syncState = SYNC_FREE_RUN
    0x00001FDC 472803 3 CS_DAP_0 SYNC R: IsSyncReady() = 0: syncAction = 0x00000000, syncSetup = 0x00000000, syncState = SYNC_FREE_RUN
    0x00001FDC 472803 3 CS_DAP_0 GTI C: GTI_STAT( 0x37015A88 )
    0x00001FDC 472803 3 CS_DAP_0 GTI R: GTI_STAT( 0x37015A88 ) = 0x0000000D
    0x00001FDC 472803 3 CS_DAP_0 STATE I: Target execution state changed to STATUS_NON_DEBUG_CHANGE
    0x00001FDC 472803 3 CS_DAP_0 STATE I: Debugger execution state changed to EVENT_DSP_HALT
    0x00001FDC 472803 3 COM_DBG_IF C: class DSP_CO_USER::OnRefresh()
    0x00001FDC 472803 3 XPCOM C: ( (dsINumberEventCallback*)3C805750 )->onEvent( 0x00000008 )
    0x00001FDC 472803 3 XPCOM R: ( (dsINumberEventCallback*)3C805750 )->onEvent( 0x00000008 ) = 0x00000000
    0x00001FDC 472803 3 COM_DBG_IF R: class DSP_CO_USER::OnRefresh()
    0x00001FDC 472803 4 CS_DAP_0 POLL I: Yielding to other threads
    0x00001FDC 472803 3 CS_DAP_0 POLL R: Poll() returning
    0x00001FDC 472803 4 CORTEX_M4_0 POLL I: TimeToPollAgain() target is idle and needs polling in 421 ms
    0x00001FDC 472803 4 CS_DAP_0 POLL I: TimeToPollAgain() target is idle and needs polling in 500 ms
    0x00001FDC 472803 4 POLL I: TimeToSleep() found shorter sleep time of 500 ms from class DevicePollFrequencyManager
    0x00001FDC 472803 4 CORTEX_M4_0 POLL I: TimeToPollAgain() target is idle and needs polling in 421 ms
    0x00001FDC 472803 4 POLL I: TimeToSleep() found shorter sleep time of 421 ms from class DevicePollFrequencyManager
  • Julian,

    You are running into SDSCM00050528 which is fixed in 6.1 (to be released in February).

    Because the location is in flash, CCS sets a hardware breakpoint instead of a software breakpoint. It's supposed to be possible to set hw breakpoints non-intrusively while running on the tivaC, so no halt is issued. However, this is broken in 6.0. In 6.1 you'll be able to set hw breakpoints without this option set at all. In the mean time, you'll have to manually halt the processor to set any breakpoints.

    Darian
  • Darian,

    nice to hear a fix is already in progress. I'll try again when CCSv6.1 is released.

    Julian
  • Glad I came across this... as I am encountering the issue too. Extremely annoying bug! Do you have an estimate for when the patch will be available? Thank you,

    - Jason
  • Jason - 6.1.0 is scheduled for the end of February.

    Thanks
    ki
  • Would this happen to be related to a problem I've seen a few times now where clearing a breakpoint removes it visibly from the IDE and breakpoint list, but the debugger continues to hit it until you reset the board? Next time it happens I'll try to see if I can learn anything more about it.

    I searched for SDSCM00050528 and only came across the post where it was added. Can customers get access to the bug tracker where these are stored?

    Thank you,

    - Jason
  • Jason Gossiaux said:
    I searched for SDSCM00050528 and only came across the post where it was added. Can customers get access to the bug tracker where these are stored?

    Yes. Check out the last line in my signature. It is a link to the public bug tracker.

    Thanks

    ki

  • Hi,

    I just tried with CCSv6.1 and it works for both InCircuit Debug Interface and XDS100v2.
    The "Halt the target before any debugger accesses (will impact servicing of interrupts)" box does NOT have to be checked to make it work.

    Julian