{"id":13562703,"url":"https://github.com/redink/extrace","last_synced_at":"2025-04-07T07:12:34.112Z","repository":{"id":34243852,"uuid":"173274326","full_name":"redink/extrace","owner":"redink","description":"Elixir wrapper for Recon Trace.","archived":false,"fork":false,"pushed_at":"2024-09-16T22:22:27.000Z","size":69,"stargazers_count":58,"open_issues_count":0,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-13T09:53:06.252Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redink.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-01T09:32:08.000Z","updated_at":"2024-10-08T11:28:27.000Z","dependencies_parsed_at":"2024-01-31T07:02:22.689Z","dependency_job_id":"25940bec-3743-4a31-9623-e265de74d680","html_url":"https://github.com/redink/extrace","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redink%2Fextrace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redink%2Fextrace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redink%2Fextrace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redink%2Fextrace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redink","download_url":"https://codeload.github.com/redink/extrace/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247608153,"owners_count":20965952,"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","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":[],"created_at":"2024-08-01T13:01:11.372Z","updated_at":"2025-04-07T07:12:34.092Z","avatar_url":"https://github.com/redink.png","language":"Elixir","funding_links":[],"categories":["Debugging"],"sub_categories":[],"readme":"# Extrace\n\n[![Hex.pm Version](https://img.shields.io/hexpm/v/extrace.svg?style=flat-square)](https://hex.pm/packages/extrace)\n[![Hex Docs](https://img.shields.io/badge/hex-docs-lightgreen.svg?style=flat-square)](https://hexdocs.pm/extrace/)\n[![Total Download](https://img.shields.io/hexpm/dt/extrace.svg?style=flat-square)](https://hex.pm/packages/extrace)\n[![License](https://img.shields.io/hexpm/l/extrace.svg?style=flat-square)](https://github.com/redink/extrace/blob/master/LICENSE.md)\n[![Last Updated](https://img.shields.io/github/last-commit/redink/extrace.svg?style=flat-square)](https://github.com/redink/extrace/commits/master)\n\nExtrace is an Elixir wrapper for [Recon Trace](https://ferd.github.io/recon/recon_trace.html).\n\n## Installation\n\nThe package can be installed by adding `:extrace` to your list of dependencies\nin `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:extrace, \"~\u003e 0.3.0\"}\n  ]\nend\n```\n\n## Examples\n\nSet point:\n\n```elixir\niex\u003e Extrace.calls([{Enum, :take_random, fn _ -\u003e :return end}, {Enum, :count, fn _ -\u003e :return end}], 100, [scope: :local])\n4\n```\n\nNote that the functions to be traced (`:take_random` and `:count` in the example above) can only be private if `scope: :local` is set.\n\nOne function executed:\n\n```elixir\niex(2)\u003e Enum.take_random([1,2,3,4], 200)\n[2, 4, 3, 1]\n\n18:42:10.834670 \u003c0.183.0\u003e Enum.take_random([1, 2, 3, 4], 200)\n\n18:42:10.840212 \u003c0.183.0\u003e Enum.take_random(%{0 =\u003e 2, 1 =\u003e 4, 2 =\u003e 3, 3 =\u003e 1}, 4, [])\n\n18:42:10.840949 \u003c0.183.0\u003e Enum.take_random(%{0 =\u003e 2, 1 =\u003e 4, 2 =\u003e 3, 3 =\u003e 1}, 3, [1])\n\n18:42:10.841064 \u003c0.183.0\u003e Enum.take_random(%{0 =\u003e 2, 1 =\u003e 4, 2 =\u003e 3, 3 =\u003e 1}, 2, [3, 1])\n\n18:42:10.841202 \u003c0.183.0\u003e Enum.take_random(%{0 =\u003e 2, 1 =\u003e 4, 2 =\u003e 3, 3 =\u003e 1}, 1, [4, 3, 1])\n\n18:42:10.841330 \u003c0.183.0\u003e Enum.take_random(%{0 =\u003e 2, 1 =\u003e 4, 2 =\u003e 3, 3 =\u003e 1}, 0, [2, 4, 3, 1])\n\n18:42:10.841440 \u003c0.183.0\u003e Enum.take_random/3 --\u003e [2, 4, 3, 1]\n\n18:42:10.841521 \u003c0.183.0\u003e Enum.take_random/3 --\u003e [2, 4, 3, 1]\n\n18:42:10.841606 \u003c0.183.0\u003e Enum.take_random/3 --\u003e [2, 4, 3, 1]\n\n18:42:10.841685 \u003c0.183.0\u003e Enum.take_random/3 --\u003e [2, 4, 3, 1]\n\n18:42:10.841959 \u003c0.183.0\u003e Enum.take_random/3 --\u003e [2, 4, 3, 1]\n\n18:42:10.842046 \u003c0.183.0\u003e Enum.take_random/2 --\u003e [2, 4, 3, 1]\n```\n\nAnother function executed:\n\n```elixir\niex(4)\u003e Enum.count([1,2,3,4])\n4\n\n18:42:27.383667 \u003c0.183.0\u003e Enum.count([1, 2, 3, 4])\n\n18:42:27.383795 \u003c0.183.0\u003e Enum.count/1 --\u003e 4\n```\n\n## Copyright and License\n\nCopyright (c) 2015, 2016 Tatsuya Kawano under [MIT License](./ORIGINAL-LICENSE.md). Fork from [https://github.com/tatsuya6502/recon_ex](https://github.com/tatsuya6502/recon_ex)\n\nCopyright (c) 2019 redink\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredink%2Fextrace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredink%2Fextrace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredink%2Fextrace/lists"}