{"id":17188018,"url":"https://github.com/icculus/altrace","last_synced_at":"2025-10-24T20:19:58.599Z","repository":{"id":47447113,"uuid":"381153775","full_name":"icculus/altrace","owner":"icculus","description":"An OpenAL debugging tool.","archived":false,"fork":false,"pushed_at":"2021-08-31T14:29:02.000Z","size":139,"stargazers_count":10,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-20T19:44:05.938Z","etag":null,"topics":["debugger","debugger-visualizer","openal"],"latest_commit_sha":null,"homepage":"https://icculus.org/altrace/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"zlib","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/icculus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["icculus"],"patreon":"icculus"}},"created_at":"2021-06-28T20:28:57.000Z","updated_at":"2025-03-20T13:59:49.000Z","dependencies_parsed_at":"2022-08-23T08:50:19.921Z","dependency_job_id":null,"html_url":"https://github.com/icculus/altrace","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/icculus/altrace","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icculus%2Faltrace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icculus%2Faltrace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icculus%2Faltrace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icculus%2Faltrace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/icculus","download_url":"https://codeload.github.com/icculus/altrace/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icculus%2Faltrace/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280859055,"owners_count":26403456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-24T02:00:06.418Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debugger","debugger-visualizer","openal"],"created_at":"2024-10-15T01:07:53.114Z","updated_at":"2025-10-24T20:19:58.572Z","avatar_url":"https://github.com/icculus.png","language":"C","funding_links":["https://github.com/sponsors/icculus","https://patreon.com/icculus","https://patreon.com/icculus/)!"],"categories":[],"sub_categories":[],"readme":"# alTrace\n\nThis is a tool for debugging OpenAL applications and implementations. It\nlets you record, playback, and visualize an OpenAL call stream.\n\n\n# Quick start:\n\n- This work is funded by my Patreon! If you like it,\n  [throw in a buck](https://patreon.com/icculus/)!\n- This is all brand new code, if something looks obviously broken it probably\n  is. At this time, it definitely works on my computer, so feel free to\n  come by and try it at my house if you have problems.\n- This works on macOS and Linux (and other Unix systems, probably). Windows\n  is currently unsupported (but can be in the future!).\n- You'll need [CMake](https://cmake.org/) to build. If you want the GUI,\n  you'll need [wxWidgets](https://wxwidgets.org/). The command line tools\n  and trace recorder does not need wxWidgets. I built this with wxWidgets 3.0;\n  if you're on macOS, you'll want to use at least 3.1 or Mojave's Dark Mode\n  won't work.\n- Build the thing with CMake:\n   ```sh\n   cd altrace\n   mkdir cmake-build\n   cd cmake-build\n   cmake -DCMAKE_BUILD_TYPE=Release ..\n   make\n   ```\n- You'll end up with a libaltrace_record.so (or .dylib) file. Take that and\n  make your game use it. It's a drop-in replacement for your usual OpenAL\n  library, so either link against it directly, or dlopen it, or force it\n  to load over the usual OpenAL with LD_PRELOAD.\n- When your game runs, alTrace will write out a tracefile (something like\n  `MyExecutableName.altrace`, or `*.1.altrace`, `*.2.altrace`, etc). Any\n  time your game talks to OpenAL, the details are logged to the tracefile.\n- When you're done, quit your game.\n- You can see the list of OpenAL calls made by your game and their results\n  with the command line tool:\n  ```sh\n  altrace_cli MyGameName.altrace\n  ```\n- Want to see _everything_ we recorded, including state changes and OpenAL\n  errors and such? Try --dump-all ...\n  ```sh\n  altrace_cli --dump-all MyGameName.altrace\n  ```\n- (there are other command lines to make this less of a firehose, if you only\n   want some specific pieces of information. Run altrace_cli with no arguments\n   to see the list.)\n- Want to _replay_ the tracefile? This will run the same function calls back\n  through OpenAL (possibly a different OpenAL implementation, if you're into\n  that sort of thing). This is useful if you want to debug OpenAL itself and\n  want to ditch all the game logic and get a reproduction case: just run\n  altrace_cli under a debugger.  :)   Otherwise, someone can send you a\n  tracefile when your game, unrelated to the OpenAL implementation, got into\n  a weird state and you want to hear what happened.\n  ```sh\n  altrace_cli --run MyGameName.altrace\n  ```\n- If you built altrace_wx, you can run that for a GUI that lets you visualize\n  the data:\n  ```sh\n  altrace_wx MyGameName.altrace\n  ```\n- Need more clarity into the data? alTrace exposes an OpenAL extension that\n  lets you label objects, annotate the stream of function calls, and group\n  sections of calls together, so your app can cooperate to make the\n  information more user-friendly.\n- Future plans: support for more OpenAL extensions (mostly this is just core\n  OpenAL 1.1 right now), Windows support, more features in the GUI, more\n  help on tracking down problems, etc.\n- Questions? Bug reports? Hit me up: icculus@icculus.org\n\nThanks!\n\n--ryan.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficculus%2Faltrace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficculus%2Faltrace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficculus%2Faltrace/lists"}