APEX Script: how to debug?

   905   6   1
User Avatar
Member
373 posts
Joined: 6月 2023
Offline
Well I think APEX Script is cool, but it doesn't seem to be easier to debug than manipulating a graph with Python...

How do you even print a debug message?

https://www.sidefx.com/docs/houdini/character/kinefx/apexscriptfunctions.html#specialfunctions [www.sidefx.com]

...is the only way creating a sticky note...?
Edited by kodra - 2024年7月13日 04:46:07
User Avatar
スタッフ
31 posts
Joined: 3月 2020
Offline
Hey Kodra,

In H20.5 there isn't a good way to print debug messages from an APEX graph (or from APEX Script) but we're aware of this gap and we're working on a Logcallback for APEX that could be used to log messages, warnings, and errors as well as throw custom error messages to our nodes which invoke APEX graphs.

Once the design of it is finalized, we'll add printing support to APEX Script.
User Avatar
スタッフ
64 posts
Joined: 5月 2019
Offline
Hi there, yes we are unfortunately currently missing print and error callbacks in APEX. In the meantime, I find the best way to debug is to format debug log statements as strings using the string::Format callback and associated string formatting syntax in APEX Script, and then wire the debug strings to the output of the graph, or collect the list of all debug prints in a StringArray and wire that to the output of the graph. I also find the "Inspect Line" feature quite useful for finding where in a graph a particular line corresponds to, so that I can directly inspect the graph to find issues there.
User Avatar
Member
130 posts
Joined: 6月 2019
Offline
in the meantime this stupid trick can work:


I've attached the hip as well. the only thing is connect the output, even void one
not sure how log callback would be different, but this workflow is a bit painful

I personally think apex engine would benefit from any sort of conventional tagging, like if I'm tagging node (function, subnet, whatever) as traceable it just dump it's inputs and outputs. this alone actually would cover a lot of debugging

Attachments:
apex-printf.png (121.8 KB)
apex-debug.hiplc (101.8 KB)

User Avatar
Member
17 posts
Joined: 8月 2017
Offline
Is there a way to do something like this but get the debug information while in the animation state? I want to debug my rig graph values while animating my character.
User Avatar
Member
539 posts
Joined: 8月 2019
Offline
cwrenniks
Is there a way to do something like this but get the debug information while in the animation state? I want to debug my rig graph values while animating my character.

The above RunVex trick should work in animation state as well.

But man it's such a hack and extremely painful to debug this way.
User Avatar
Member
17 posts
Joined: 8月 2017
Offline
I'm not seeing how to get the data in real time, while moving a rig. As an example, imagine outputing the translation vector while manipulating a joint. Is there a way I'm missing to do this? I'm starting to go down a path to figure out how to just log the information to a file, but that is also a pain.
  • Quick Links