(toppers-users 341) Re: [BUG?] cfg がリターンコード 139 でエラー

Takayuki WAKABAYASHI takayuki @ ertl.ics.tut.ac.jp
2002年 1月 9日 (水) 17:09:52 JST


豊橋技術科学大学の若林です。

MURANAKA Masaki さんは書きました:
 > さて、アプリケーションを作っていたところ、cfgで引っかかって
 > make が通らない状況に出くわしました。
 > 終了コードが 139 になっているのが原因のようです。
 > ざっとcfgのコードを眺めてみましたが、139の意味が掴めませんでした。

こちらで実行したところ、coreを吐いて落ちてしまいました。
原因は、優先度を文字列として扱っていたことです。
数値として読み出された優先度を、string型へのポインタに
強制キャストしたことによって発生した不正アクセス例外です。

修正後のdiffを末尾に添付します。

もなかさん。いつもありがとうございます。

===================================================================
RCS file: /home/CVS/configurator/jsp/toppers.cpp,v
retrieving revision 1.12
diff -r1.12 toppers.cpp
424,425c424,433
<       work = string("INT_PRIORITY(") + *(String *)(Parent->GetParameter(id, PRIORITY)) + ")";
<       Parent->SetParameter(id, PRIORITY, new String(work));
---
>     val = Parent->GetParameter(id, PRIORITY);
>     if(*val == Value::INTEGER)
>     {
>               sprintf(buffer, "INT_PRIORITY(%d)", (int)*(Integer *)val);
>               Parent->SetParameter(id, PRIORITY, new String(buffer));
>       }else
>     {
>               work = string("INT_PRIORITY(") + *(String *)val + ")";
>               Parent->SetParameter(id, PRIORITY, new String(work));
>       }

+----------------------------------------------+
| Takayuki WAKABAYASHI (わかばやし たかゆき)   |
|  mailto: takayuki @ ertl.ics.tut.ac.jp         |
+----------------------------------------------+
| 豊橋技術科学大学 工学研究科 電子情報工学専攻 |
|   組込みリアルタイムシステム研究室           |
+----------------------------------------------+