Как заставить FlashDevelop показывать ошибку строки и где это произошло с Haxe?

Я использую Haxe некоторое время, и я отлаживаю цель Windows (OpenFL).

Когда я помещаю где-то try/catch, он просто говорит, например, "Null object reference" - он не говорит номер строки и класс, поэтому мне приходится продолжать размещать трассировки, чтобы найти, в какой строке возникла ошибка.

Кто-нибудь может мне помочь?


person Thiago Sabin    schedule 16.02.2017    source источник


Ответы (1)


Возможно, вам потребуется включить трассировку стека, добавив следующее определение в файл project.xml, если вы компилируете в режиме выпуска:

<haxedef name="HXCPP_STACK_LINE" />

Кроме того, вы не сможете перехватывать исключения нулевой ссылки или получать для них трассировку стека, если не определено следующее (по соображениям производительности):

<haxedef name="HXCPP_CHECK_POINTER" />

С этими двумя вы должны увидеть трассировку стека на панели вывода FlashDevelop.

Вы можете найти полезную информацию об этих флагах и отладке hxcpp в целом здесь . Вы также можете проверить библиотеку crashdumper.

person Gama11    schedule 16.02.2017
comment
я использую catch (e: Dynamic) { trace (e); } и все же я получаю только MainDomain.hx:218: Null Object Reference является mainDomain.hx:218 строкой улова... я делаю что-то не так? - person Thiago Sabin; 16.02.2017
comment
Вы можете просто не перехватывать исключение, если хотите увидеть трассировку стека. Кроме того, вы можете использовать haxe.CallStack для получения трассировки стека: gist.github.com/Gama11/adcc268fb00d3f442c969e54940db831 - person Gama11; 16.02.2017