e2 studio v7.5.0のStack Analysis ViewはGNURXでは1箇所でも関数ポインタで関数呼び出しするとERRORになって使えませんね

こんにちは。NoMaYです。

e2 studio 7.5.0+RXスマートコンフィグレータplugin 7.5.0+GNURX 2019q2(4.8.4.201902)で作業していてスタック解析ビューの致命的な(だと私は思う)制限事項に気付きました。1箇所でも関数ポインタで関数呼び出しする箇所があると、以下の画面コピーの通り(原因が大変分かり難い)エラーになってしまうのですが、そもそもR_BSPモジュールにそういう箇所が存在していますので、実務的には全く使えない、ということになりますね。(ちなみに、FreeRTOS Kernelのソースにもそういう箇所が存在していますし、FITの各モジュールでのコールバック関数の呼び出しも関数ポインタを使用した関数呼び出しですね。)

現象再現プロジェクトのファイル一式
issue_20191007.zip    162KB

e2 studioのスタック解析ビューはGNURXでは関数ポインタで関数呼び出ししているとエラーになる


素朴に関数呼び出ししているのであればスタック解析ビューにスタック情報が表示される

 

Parents
  • ほや さん、こんにちは。NoMaYです。

    情報有難う御座います。このページをブラウザのお気に入りメニューに登録しないといけないですね、、、

    バグ内容

    [GCCRX, GCCRL, GNU ARM Embedded] In a project that has function pointers, the Stack Analysis view cannot work correctly and not display information.


    [GCCRX, GCCRL, GNU ARM Embedded] (私の訳です)関数ポインタの使われているプロジェクトではスタック解析ビューは正しく動作せず情報を表示しません。


    回避策

    Add options to display stack information as warning message in Stack Analysis view to the specified files (except file has function pointers) which you want to see the stack size and rebuild, stack size information for functions in these files can display in Stack Analysis view.


    (意訳すると)関数ポインタの使われているソースを見つけてスタック情報を生成させないようにファイル単位でスタック情報生成オプションを外して下さい(付加しないようにして下さい)。
    (原文は、スタック情報を見たいファイル(ただし関数ポインタの使われていないソースであること)にだけスタック情報生成オプションを付加して下さい、かな。)


    思うに、原文の方法では甚だ、私の意訳の方法でもやっぱり、必要スタックサイズを見積もりたいのだけれど、というニーズには厳しいかな、という気がしました。

Reply
  • ほや さん、こんにちは。NoMaYです。

    情報有難う御座います。このページをブラウザのお気に入りメニューに登録しないといけないですね、、、

    バグ内容

    [GCCRX, GCCRL, GNU ARM Embedded] In a project that has function pointers, the Stack Analysis view cannot work correctly and not display information.


    [GCCRX, GCCRL, GNU ARM Embedded] (私の訳です)関数ポインタの使われているプロジェクトではスタック解析ビューは正しく動作せず情報を表示しません。


    回避策

    Add options to display stack information as warning message in Stack Analysis view to the specified files (except file has function pointers) which you want to see the stack size and rebuild, stack size information for functions in these files can display in Stack Analysis view.


    (意訳すると)関数ポインタの使われているソースを見つけてスタック情報を生成させないようにファイル単位でスタック情報生成オプションを外して下さい(付加しないようにして下さい)。
    (原文は、スタック情報を見たいファイル(ただし関数ポインタの使われていないソースであること)にだけスタック情報生成オプションを付加して下さい、かな。)


    思うに、原文の方法では甚だ、私の意訳の方法でもやっぱり、必要スタックサイズを見積もりたいのだけれど、というニーズには厳しいかな、という気がしました。

Children
No Data