The packageDaffodilBin task forks a process with a custom classpath, which makes it difficult to debug.
We need to determine a way to make this easier and document it somewhere. This issue is more about debugging Daffodil than the plugin, so the documentation may want to live in the Daffodil wiki, but changes to the plugin might be useful to aid in getting things set up.
One example, currently it's possible to get the classpath used "sbt test" by running a command like this:
export DAFFODIL_CLASSPATH=$(sbt -batch -error "export fullClasspath")
This classpath is the same as what is used by daffodilPackageBin if daffodilPackageBinVersions is the same as daffodilVersion.
You can then run the Daffodil CLI with that classpath (e.g. daffodil save-parser -s ...) and get essentially the same results as packageDaffodilBin. From there it is just a matter of debugging the CLI.
Another option might be a way to output the arguments that packageDaffodilBin uses to fork, and then those arguments can copied and run in a debugger. That might avoids issues with setting up the classpath.
The packageDaffodilBin task forks a process with a custom classpath, which makes it difficult to debug.
We need to determine a way to make this easier and document it somewhere. This issue is more about debugging Daffodil than the plugin, so the documentation may want to live in the Daffodil wiki, but changes to the plugin might be useful to aid in getting things set up.
One example, currently it's possible to get the classpath used "sbt test" by running a command like this:
This classpath is the same as what is used by daffodilPackageBin if daffodilPackageBinVersions is the same as daffodilVersion.
You can then run the Daffodil CLI with that classpath (e.g. daffodil save-parser -s ...) and get essentially the same results as packageDaffodilBin. From there it is just a matter of debugging the CLI.
Another option might be a way to output the arguments that packageDaffodilBin uses to fork, and then those arguments can copied and run in a debugger. That might avoids issues with setting up the classpath.