{ "info": { "author": "TomasAccini, FdelMazo", "author_email": "", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3" ], "description": "==================\nValgreen\n==================\n\n.. image:: https://badge.fury.io/py/valgreen.svg\n :target: https://badge.fury.io/py/valgreen\n\nValgrind output readable for human beings\n\nWith *Valgreen*:\n\n.. image:: https://i.imgur.com/V0XrzXp.gif\n :target: https://asciinema.org/a/268317\n\nWith *Valgrind*:\n\n.. image:: https://i.imgur.com/rVXnlEB.gif\n :target: https://asciinema.org/a/vnZy9cmp3VbkPhPzwfoGBRGlB\n\nInstallation\n============\n\nAs simple as :code:`pip3 install valgreen`. Keep in mind you need a working Valgrind installation!\n\nUsage\n=====\n\nJust write :code:`valgreen ./exec` instead of :code:`valgrind --leak-check=full --track-origins=yes --show-reachable=yes ./exec`\n\nExample\n=======\n\nValgreen vs Valgrind output\n\n.. code::\n\n $ gcc -g example.c -o example\n $ valgreen ./example\n\n 1) Conditional jump or move depends on uninitialised value(s)\n at main (example.c:8)\n Uninitialised value was created by a stack allocation\n at main (example.c:4)\n\n 2) Invalid write of size 1\n at main (example.c:12)\n Address 0x522d042 is 0 bytes after a block of size 2 alloc'd\n at malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)\n by main (example.c:11)\n\n 3) Invalid read of size 1\n at main (example.c:15)\n Address 0x522d045 is 3 bytes after a block of size 2 alloc'd\n at malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)\n by main (example.c:11)\n\n 4) Invalid free() / delete / delete[] / realloc()\n at free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)\n by main (example.c:19)\n Address 0x522d040 is 0 bytes inside a block of size 2 free'd\n at free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)\n by main (example.c:18)\n Block was alloc'd at\n at malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)\n by main (example.c:11)\n\n 5) 100 bytes in 1 blocks are definitely lost in loss record 1 of 1\n at malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)\n by main (example.c:22)\n\n $ valgrind --leak-check=full --track-origins=yes --show-reachable=yes ./example \n\n ==7750== Memcheck, a memory error detector\n ==7750== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.\n ==7750== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info\n ==7750== Command: ./example\n ==7750== \n ==7750== Conditional jump or move depends on uninitialised value(s)\n ==7750== at 0x108696: main (example.c:8)\n ==7750== Uninitialised value was created by a stack allocation\n ==7750== at 0x10868A: main (example.c:4)\n ==7750== \n ==7750== Invalid write of size 1\n ==7750== at 0x1086B5: main (example.c:12)\n ==7750== Address 0x522d042 is 0 bytes after a block of size 2 alloc'd\n ==7750== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)\n ==7750== by 0x1086A8: main (example.c:11)\n ==7750== \n ==7750== Invalid read of size 1\n ==7750== at 0x1086BC: main (example.c:15)\n ==7750== Address 0x522d045 is 3 bytes after a block of size 2 alloc'd\n ==7750== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)\n ==7750== by 0x1086A8: main (example.c:11)\n ==7750== \n ==7750== Invalid free() / delete / delete[] / realloc()\n ==7750== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)\n ==7750== by 0x1086DA: main (example.c:19)\n ==7750== Address 0x522d040 is 0 bytes inside a block of size 2 free'd\n ==7750== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)\n ==7750== by 0x1086CE: main (example.c:18)\n ==7750== Block was alloc'd at\n ==7750== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)\n ==7750== by 0x1086A8: main (example.c:11)\n ==7750== \n ==7750== \n ==7750== HEAP SUMMARY:\n ==7750== in use at exit: 100 bytes in 1 blocks\n ==7750== total heap usage: 2 allocs, 2 frees, 102 bytes allocated\n ==7750== \n ==7750== 100 bytes in 1 blocks are definitely lost in loss record 1 of 1\n ==7750== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)\n ==7750== by 0x1086E4: main (example.c:22)\n ==7750== \n ==7750== LEAK SUMMARY:\n ==7750== definitely lost: 100 bytes in 1 blocks\n ==7750== indirectly lost: 0 bytes in 0 blocks\n ==7750== possibly lost: 0 bytes in 0 blocks\n ==7750== still reachable: 0 bytes in 0 blocks\n ==7750== suppressed: 0 bytes in 0 blocks\n ==7750== \n ==7750== For counts of detected and suppressed errors, rerun with: -v\n ==7750== ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tomasaccini/valgreen/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "valgreen", "package_url": "https://pypi.org/project/valgreen/", "platform": "", "project_url": "https://pypi.org/project/valgreen/", "project_urls": { "Homepage": "https://github.com/tomasaccini/valgreen/" }, "release_url": "https://pypi.org/project/valgreen/0.3/", "requires_dist": null, "requires_python": "", "summary": "Valgrind output readable for human beings", "version": "0.3" }, "last_serial": 5830338, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "7e8e6ca2e59f3c8457c38552f3969c31", "sha256": "e93a916e79a9f0a0fdbf6644eafb7b63811564b3e0a4c401b63cd7e44e5f0b68" }, "downloads": -1, "filename": "valgreen-0.1.tar.gz", "has_sig": false, "md5_digest": "7e8e6ca2e59f3c8457c38552f3969c31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1517, "upload_time": "2019-03-18T00:39:54", "url": "https://files.pythonhosted.org/packages/ef/39/cc6c543d3a19cce4e8ca1cbe119740a0cbd33e38fd08686320b08c51321b/valgreen-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "76f717c8dc64eb8c31cae6a76f6f3c43", "sha256": "530e6f011bdc3ed1c72677cba2363445a8d97712ea12d15f7026f01aa4d51d8c" }, "downloads": -1, "filename": "valgreen-0.2.tar.gz", "has_sig": false, "md5_digest": "76f717c8dc64eb8c31cae6a76f6f3c43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2877, "upload_time": "2019-03-18T00:59:35", "url": "https://files.pythonhosted.org/packages/26/c1/91a37432c7a82c8e3d9ff696ddc5a779524399cf20b09634388a1e509463/valgreen-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "9c9eabc94d6386f8a61768aed944dee9", "sha256": "e886df3e5504ba9a448216f9bb672c130ab6ad5b4edceb47da012087e45a39e8" }, "downloads": -1, "filename": "valgreen-0.3.tar.gz", "has_sig": false, "md5_digest": "9c9eabc94d6386f8a61768aed944dee9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4410, "upload_time": "2019-09-14T21:45:37", "url": "https://files.pythonhosted.org/packages/d3/9e/4ed500c51572ef8e31e33d6126e7c12dcb62a7a1bc4d2fe681289a9c6fa0/valgreen-0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9c9eabc94d6386f8a61768aed944dee9", "sha256": "e886df3e5504ba9a448216f9bb672c130ab6ad5b4edceb47da012087e45a39e8" }, "downloads": -1, "filename": "valgreen-0.3.tar.gz", "has_sig": false, "md5_digest": "9c9eabc94d6386f8a61768aed944dee9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4410, "upload_time": "2019-09-14T21:45:37", "url": "https://files.pythonhosted.org/packages/d3/9e/4ed500c51572ef8e31e33d6126e7c12dcb62a7a1bc4d2fe681289a9c6fa0/valgreen-0.3.tar.gz" } ] }