Unity向けのC#スクリプトをCLIで実行 + StackTrace取得

【 2015/03/30 01:38 】by 月琴かりん

概要

CUIベースで出来るテストまでUnityTestToolsでやってたら効率悪くなってきたので、
DLLで完結するところは切り放そう、、、

としたときに、StackTraceが拾えなくてドハマりしたのでメモ。

だいたいUnityがC#5.0に対応していないせい

System.Runtime.CompilerServicesの拡張アトリビュート(CallerLineNumberAttributeとかな!)
が使えればなにも悩む事は無いね。

でもどっこい、Unityのmonoは古く、C#5.0に対応してないので、
呼びだし元情報を、古のStackTraceから気合いで拾う手法をとるしかない。

というわけで、そそくさとロガーを修正したが、StackTraceのプロパティに値が入ってこない。

WHY?

オプションが足りない!

StackTraceを拾うためには、デバッグシンボルを作らないといけない、それは知ってる。
dllやexeを作るとき、mcsに -debug オプションをつければよいのでしょう?

ではなぜこれだけではダメか。

それは、exe実行時にもオプションが必要だからでしたー(初見殺し

デバッグシンボルが生成された状態で、なおかつ、

とする、これで、CLI上の実行で、スタックトレースが拾えるようになるというね...(完)

Link Infomation

alomarron

サイト内検索