{"id":26145686,"url":"https://github.com/carlowood/libcwd","last_synced_at":"2025-04-14T03:09:26.695Z","repository":{"id":10807090,"uuid":"13080397","full_name":"CarloWood/libcwd","owner":"CarloWood","description":"Libcwd is a thread-safe, full-featured debugging support library for C++ developers.  It includes ostream-based debug output with custom debug channels and devices, powerful memory allocation debugging support, as well as run-time support for printing source file:line number information and demangled type names.","archived":false,"fork":false,"pushed_at":"2025-04-12T22:10:28.000Z","size":2741,"stargazers_count":25,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-14T03:09:15.670Z","etag":null,"topics":["cpp","cpp20","cpp20-library","debug","debugging","productivity"],"latest_commit_sha":null,"homepage":"http://carlowood.github.io/libcwd/index.html","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CarloWood.png","metadata":{"files":{"readme":"README","changelog":"NEWS","contributing":null,"funding":null,"license":"LICENSE.QPL","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,"zenodo":null}},"created_at":"2013-09-25T00:44:24.000Z","updated_at":"2025-04-12T22:10:31.000Z","dependencies_parsed_at":"2024-07-10T19:47:57.257Z","dependency_job_id":"a2c22d63-3eae-44eb-9bed-b565b5ade041","html_url":"https://github.com/CarloWood/libcwd","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CarloWood%2Flibcwd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CarloWood%2Flibcwd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CarloWood%2Flibcwd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CarloWood%2Flibcwd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CarloWood","download_url":"https://codeload.github.com/CarloWood/libcwd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248813795,"owners_count":21165634,"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":["cpp","cpp20","cpp20-library","debug","debugging","productivity"],"created_at":"2025-03-11T04:54:42.006Z","updated_at":"2025-04-14T03:09:26.670Z","avatar_url":"https://github.com/CarloWood.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"How to install and use libcwd\n-----------------------------\n\nTutorial on How to set up a project to use cmake, libcwd and aicxx git submodules (December 2022):\nhttps://www.youtube.com/watch?v=uaJdQvt3oo4\n\nNote to the developers\n----------------------\n\nThe stability of libcwd depends on feedback I receive.\nBecause of the way libcwd works and is tested before releases,\nit is very likely that libcwd either works OR core dumps\neven before it reaches main.  If you are trying libcwd for\nthe first time and it doesn't work for you (even the simplest\napplication crashes) then please CONTACT ME!  It doesn't\nmean that libcwd is a collection of bugs, it just means that\nI do not have the same Operating System as you and I need\nsome help to make libcwd be able to reach main on your system.\nI promise that from there on it will be as stable as a rock.\nYou can contact me through \u003ccarlo@alinoe.com\u003e.\n\nIntroduction\n------------\n\nLibcwd is for use by developers while still developing: end\napplications don't need it.  While still developing, you\nwill compile with -DCWDEBUG and link with -lcwd (and add its\ninstall path to LD_LIBRARY_PATH).  A production version is then\nsimply compiled without -DCWDEBUG and not linked with -lcwd.\n\nThe library cannot be linked with static libraries (because\nthose are not compiled with -fPIC) therefore libtool drops\nany inter-library dependency if you only have a static\nlibrary installed and will print something like:\n\n *** Warning: This library needs some functionality provided by -lXXX.\n *** I have the capability to make that library automatically link in when\n *** you link to this library.  But I can only do this if you have a\n *** shared version of the library, which you do not appear to have.\n\nIf this happens, then this means that you will need to\nlink your programs with -lcwd -lXXX, rather than just -lcwd.\n\n\nNote that although a static library is provided (with the\nconfigure option --enable-static), it is highly discouraged.\nMost notably, you should only use libcwd.a as a result of\nlinking with \"-static -lcwd\"; dlopen(3) is not supported for\nsuch statically linked applications.  If you want to use\ndlopen(3) anyway together with libcwd then make sure that the\nloaded module is not using libcwd and is not allocating any\nmemory. Otherwise it will not link or it will crash.\n\n\nThe directory `example-project' contains a fully functional\nexample project that uses autoconf, automake and libcwd.\nPlease read example-project/README for more info and a little\ntutorial on the automake build environment.  For the example\nproject to work, you *first* need to install libcwd.\n\nPlease read the INSTALL file for a list of other needed\nlibraries and tools before attempting to compile libcwd.\n\nThe debug support can be divided into the following components:\n\n1) Support for Object Oriented debug output (using ostream and\n   debug objects for `channels' and `devices').\n2) Support for memory allocation debugging.\n3) General runtime debugging support (demangling, stack and call\n   traces, break points (starting a gdb session from within the\n   program), tracking and handling existing functions as objects,\n   etc).\n\nDetailed documentation and a tutorial can be found in the\ndirectory doc/.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlowood%2Flibcwd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarlowood%2Flibcwd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlowood%2Flibcwd/lists"}