{"id":20968947,"url":"https://github.com/lind026/ucsan","last_synced_at":"2025-04-23T03:28:04.071Z","repository":{"id":37010982,"uuid":"480385763","full_name":"linD026/ucsan","owner":"linD026","description":"The User Concurrency Sanitizer (UCSAN)","archived":false,"fork":false,"pushed_at":"2022-11-13T11:40:15.000Z","size":72,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T21:41:19.772Z","etag":null,"topics":["c","concurrency","concurrent-programming","data-race-detection"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linD026.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}},"created_at":"2022-04-11T13:11:20.000Z","updated_at":"2024-12-02T09:03:43.000Z","dependencies_parsed_at":"2023-01-17T13:00:43.828Z","dependency_job_id":null,"html_url":"https://github.com/linD026/ucsan","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/linD026%2Fucsan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linD026%2Fucsan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linD026%2Fucsan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linD026%2Fucsan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linD026","download_url":"https://codeload.github.com/linD026/ucsan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250363644,"owners_count":21418308,"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":["c","concurrency","concurrent-programming","data-race-detection"],"created_at":"2024-11-19T03:17:39.312Z","updated_at":"2025-04-23T03:28:04.050Z","avatar_url":"https://github.com/linD026.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ucsan\n\nThe User Concurrency Sanitizer (UCSAN) is the watchpoint-based data race detector.\nIt uses the [thread sanitizer](https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual) interface in [Clang](https://releases.llvm.org/3.8.0/tools/clang/docs/ThreadSanitizer.html) (v3.2+) and [GCC](https://gcc.gnu.org/gcc-4.8/changes.html) (v4.8+) to determine whether the variable data race.\n\nCurrently, it only will check the non-volatile type of variable access.\nIn other words, all the variables with thread-safety operations can declare as volatile types to avoid data race checking.\n\n## Get start\n\n## Build\n\nBuild this project with following commands:\n\n```bash\n$ make                  # Generate static library: libucsan.a\n$ make clean            # Delete generated files\n```\n\n### Makefile Parameter\n\n* `nr_cpu` : number of cpu.\n* `nr_wp` : number of watchpoint slot.\n* `CC` : compiler, gcc or clang.\n\n## How to use?\n\nAdd the static library `libucsan.a` to your project:\n\n```bash\n$ gcc -c main.c -fsanitize=thread\n$ gcc -o main main.o -L/path/to/libucsan/ -lucsan -rdynamic -pthread\n```\n\nOr you can move the `libucsan.a` to your project directory. Then:\n\n```bash\n$ gcc -c main.c -fsanitize=thread\n$ gcc -o main main.o libucsan.a -rdynamic -pthread\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flind026%2Fucsan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flind026%2Fucsan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flind026%2Fucsan/lists"}