一応、エラーを吐き出す関数やエリアを特定する程度であれば不可能ではないと思います。以下は一例
#module i_MN
#define global set_method(%1) substance_set_method %1, __line__
#deffunc substance_set_method str method, int row
logmes method
メソッド@i_MN = method
行数@i_MN = row
return
#define global get_method メソッド@i_MN+"("+行数@i_MN+"行目〜)"
#global
#module
#deffunc 関数甲
set_method "関数甲" //各関数の初めに関数名と開始行数を記録
mes "A"
return
#global
#module
#deffunc 関数乙
set_method "関数乙" //各関数の初めに関数名と開始行数を記録
mes "B"
boxf "あ", "い" //ここがエラーを吐く
return
#global
//☆☆☆本編はここからスタート☆☆☆
onerror goto *Error
関数甲
関数乙
stop
*Error
dialog "Error"+wparam+" in line"+lparam+"\n"+get_method, , "Error♪"
end
各関数の冒頭で関数名、開始行数を記録し、エラーが出たらその2つをダイアログに表示すると言う真単純な代物です。