CC-RL/CC-RX/CC-RHでVisual Studioの__debugbreak()機能のようなものを作って試してみようと思います

こんにちは。NoMaYです。

昔、Windowsアプリケーションを作っていた頃、WindowsのDebugBreak()というAPIでブレークポイントを(諸般の事情で)手作業でソースに書いていたことがありました。別スレッドの案件でちょっとそのことを思い出しましたので試してみることにしました。

Google検索: Windows OR VisualStudio DebugBreak OR __debugbreak
www.google.com/search?q=Windows+OR+VisualStudio+DebugBreak+OR+__debugbreak&num=50
 

Parents
  • こんにちは。NoMaYです。

    まずCC-RLで試してみました。以下のインラインアセンブラ関数で実現することが出来ました。ただ、CS+とVSCode、実機とルネサスRL78シミュレータで試してみましたが、残念ながら、実機でしか意図通りには動作しませんでした。

    #pragma inline_asm __debugbreak
    static void __debugbreak(void)
    {
        .db 0xff
    }

     
    top > コンパイラ編 > コンパイラ言語仕様 > 拡張言語仕様 > 拡張言語仕様の使用方法 >
    アセンブラ命令の記述(#pragma inline_asm)
    tool-support.renesas.com/autoupdate/support/onlinehelp/ja-JP/csp/V8.09.00/CS+.chm/Compiler-CCRL.chm/Output/ccrl04c0206y0012.html
     
    以下、CS+とVSCodeの画面コピーです。

    実機+CS+


    実機+VSCode


    ルネサスRL78シミュレータ+CS+ (GUI上はRun中のまま、ただしStopボタンを押すと想定した位置で止まる)



    ルネサスRL78シミュレータ+VSCode (GUI上はRun中のまま、さらにStopボタンを押すと想定外の位置で止まる)


     

Reply
  • こんにちは。NoMaYです。

    まずCC-RLで試してみました。以下のインラインアセンブラ関数で実現することが出来ました。ただ、CS+とVSCode、実機とルネサスRL78シミュレータで試してみましたが、残念ながら、実機でしか意図通りには動作しませんでした。

    #pragma inline_asm __debugbreak
    static void __debugbreak(void)
    {
        .db 0xff
    }

     
    top > コンパイラ編 > コンパイラ言語仕様 > 拡張言語仕様 > 拡張言語仕様の使用方法 >
    アセンブラ命令の記述(#pragma inline_asm)
    tool-support.renesas.com/autoupdate/support/onlinehelp/ja-JP/csp/V8.09.00/CS+.chm/Compiler-CCRL.chm/Output/ccrl04c0206y0012.html
     
    以下、CS+とVSCodeの画面コピーです。

    実機+CS+


    実機+VSCode


    ルネサスRL78シミュレータ+CS+ (GUI上はRun中のまま、ただしStopボタンを押すと想定した位置で止まる)



    ルネサスRL78シミュレータ+VSCode (GUI上はRun中のまま、さらにStopボタンを押すと想定外の位置で止まる)


     

Children
No Data