An OpenAL debugging tool.
License
icculus/altrace
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Quick start: - This work is funded by my Patreon! If you like it, throw in a buck: https://patreon.com/icculus/ - This is all brand new code, if something looks obviously broken it probably is. At this time, it definitely works on my computer, so feel free to come by and try it at my house if you have problems. - This works on macOS and Linux (and other Unix systems, probably). Windows is currently unsupported (but can be in the future!). - You'll need CMake ( https://cmake.org/ ) to build. If you want the GUI, you'll need wxWidgets ( https://wxwidgets.org/ ). The command line tools and trace recorder does not need wxWidgets. I built this with wxWidgets 3.0; if you're on macOS, you'll want to use at least 3.1 or Mojave's Dark Mode won't work. - Build the thing with CMake: cd altrace mkdir cmake-build cd cmake-build cmake -DCMAKE_BUILD_TYPE=Release .. make - You'll end up with a libaltrace_record.so (or .dylib) file. Take that and make your game use it. It's a drop-in replacement for your usual OpenAL library, so either link against it directly, or dlopen it, or force it to load over the usual OpenAL with LD_PRELOAD. - When your game runs, alTrace will write out a tracefile (something like MyExecutableName.altrace, or *.1.altrace, *.2.altrace, etc). Any time your game talks to OpenAL, the details are logged to the tracefile. - When you're done, quit your game. - You can see the list of OpenAL calls made by your game and their results with the command line tool: altrace_cli MyGameName.altrace - Want to see _everything_ we recorded, including state changes and OpenAL errors and such? Try --dump-all ... altrace_cli --dump-all MyGameName.altrace - (there are other command lines to make this less of a firehose, if you only want some specific pieces of information. Run altrace_cli with no arguments to see the list.) - Want to _replay_ the tracefile? This will run the same function calls back through OpenAL (possibly a different OpenAL implementation, if you're into that sort of thing). This is useful if you want to debug OpenAL itself and want to ditch all the game logic and get a reproduction case: just run altrace_cli under a debugger. :) Otherwise, someone can send you a tracefile when your game, unrelated to the OpenAL implementation, got into a weird state and you want to hear what happened. altrace_cli --run MyGameName.altrace - If you built altrace_wx, you can run that for a GUI that lets you visualize the data: altrace_wx MyGameName.altrace - Need more clarity into the data? alTrace exposes an OpenAL extension that lets you label objects, annotate the stream of function calls, and group sections of calls together, so your app can cooperate to make the information more user-friendly. - Future plans: support for more OpenAL extensions (mostly this is just core OpenAL 1.1 right now), Windows support, more features in the GUI, more help on tracking down problems, etc. - Questions? Bug reports? Hit me up: icculus@icculus.org Thanks! --ryan.
About
An OpenAL debugging tool.