{"action":"created","comment":{"url":"https://api.github.com/repos/cs50/help50/pulls/comments/80388932","id":80388932,"diff_hunk":"@@ -10,3 +11,45 @@ def help(lines):\n             \"Did you forget to `free` memory that you allocated using `malloc`?\"\n         ]\n         return (lines[0:1], response)\n+\n+    # use of uninitialized value of size 8\n+    matches = re.search(r\"Use of uninitialised value of size (\\d+)\", lines[0])\n+    if matches:\n+        response = [\n+            \"Looks like you're trying to access the contents of a variable which you may not have given a value.\",","path":"helpers/valgrind.py","position":19,"original_position":15,"commit_id":"3934f7ab50cf0d2d99ab4ac5d7290f004dc84763","original_commit_id":"4e849fee7a584dc99a917fdced9d569244c879a3","user":{"login":"dmalan","id":788678,"avatar_url":"https://avatars.githubusercontent.com/u/788678?v=3","gravatar_id":"","url":"https://api.github.com/users/dmalan","html_url":"https://github.com/dmalan","followers_url":"https://api.github.com/users/dmalan/followers","following_url":"https://api.github.com/users/dmalan/following{/other_user}","gists_url":"https://api.github.com/users/dmalan/gists{/gist_id}","starred_url":"https://api.github.com/users/dmalan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmalan/subscriptions","organizations_url":"https://api.github.com/users/dmalan/orgs","repos_url":"https://api.github.com/users/dmalan/repos","events_url":"https://api.github.com/users/dmalan/events{/privacy}","received_events_url":"https://api.github.com/users/dmalan/received_events","type":"User","site_admin":false},"body":"Feels a bit hard to parse. Perhaps \"Looks like you're trying to access a variable that you might not have assigned a value?\"","created_at":"2016-09-25T18:48:06Z","updated_at":"2016-09-25T19:03:15Z","html_url":"https://github.com/cs50/help50/pull/198#discussion_r80388932","pull_request_url":"https://api.github.com/repos/cs50/help50/pulls/198","_links":{"self":{"href":"https://api.github.com/repos/cs50/help50/pulls/comments/80388932"},"html":{"href":"https://github.com/cs50/help50/pull/198#discussion_r80388932"},"pull_request":{"href":"https://api.github.com/repos/cs50/help50/pulls/198"}}},"pull_request":{"url":"https://api.github.com/repos/cs50/help50/pulls/198","id":86658461,"html_url":"https://github.com/cs50/help50/pull/198","diff_url":"https://github.com/cs50/help50/pull/198.diff","patch_url":"https://github.com/cs50/help50/pull/198.patch","issue_url":"https://api.github.com/repos/cs50/help50/issues/198","number":198,"state":"open","locked":false,"title":"\"before\" and valgrind.py","user":{"login":"brianyu28","id":16066224,"avatar_url":"https://avatars.githubusercontent.com/u/16066224?v=3","gravatar_id":"","url":"https://api.github.com/users/brianyu28","html_url":"https://github.com/brianyu28","followers_url":"https://api.github.com/users/brianyu28/followers","following_url":"https://api.github.com/users/brianyu28/following{/other_user}","gists_url":"https://api.github.com/users/brianyu28/gists{/gist_id}","starred_url":"https://api.github.com/users/brianyu28/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brianyu28/subscriptions","organizations_url":"https://api.github.com/users/brianyu28/orgs","repos_url":"https://api.github.com/users/brianyu28/repos","events_url":"https://api.github.com/users/brianyu28/events{/privacy}","received_events_url":"https://api.github.com/users/brianyu28/received_events","type":"User","site_admin":false},"body":"Changes here:\r\n\r\n- Revert to helper functions responding with two lists of strings, rather than a number and a list of strings.\r\n- Added a `valgrind.py` file for valgrind matchers. Starting off by just matching \"definitely lost\" and \"use of uninitialized value.\" Also created an `issue_locate` function with a tentative solution for finding the source of a memory bug: currently it just looks for the first line at which the filename changes. For example, feeding the following into `issue_locate`:\r\n\r\n```\r\n==26==    at 0x4E8099B: _itoa_word (_itoa.c:179)\r\n==26==    by 0x4E84636: vfprintf (vfprintf.c:1660)\r\n==26==    by 0x4E8B3D8: printf (printf.c:33)\r\n==26==    by 0x40054C: main (foo.c:6)\r\n```\r\n\r\nwill return the tuple (\"main\", \"foo.c\", 6), because it guesses that we're not interested in what's in `printf.c` since that's in a different file. For multi-file programs this has the potential to be problematic, so at some point it would be good to figure out a better solution to this (I thought this was cleaner than hard-coding \"printf\" and other library functions into `valgrind.py`).","created_at":"2016-09-25T18:39:40Z","updated_at":"2016-09-25T19:03:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9df6faa5ad2ccfa041f497f1e2cb50c157420674","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/cs50/help50/pulls/198/commits","review_comments_url":"https://api.github.com/repos/cs50/help50/pulls/198/comments","review_comment_url":"https://api.github.com/repos/cs50/help50/pulls/comments{/number}","comments_url":"https://api.github.com/repos/cs50/help50/issues/198/comments","statuses_url":"https://api.github.com/repos/cs50/help50/statuses/3934f7ab50cf0d2d99ab4ac5d7290f004dc84763","head":{"label":"brianyu28:before","ref":"before","sha":"3934f7ab50cf0d2d99ab4ac5d7290f004dc84763","user":{"login":"brianyu28","id":16066224,"avatar_url":"https://avatars.githubusercontent.com/u/16066224?v=3","gravatar_id":"","url":"https://api.github.com/users/brianyu28","html_url":"https://github.com/brianyu28","followers_url":"https://api.github.com/users/brianyu28/followers","following_url":"https://api.github.com/users/brianyu28/following{/other_user}","gists_url":"https://api.github.com/users/brianyu28/gists{/gist_id}","starred_url":"https://api.github.com/users/brianyu28/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brianyu28/subscriptions","organizations_url":"https://api.github.com/users/brianyu28/orgs","repos_url":"https://api.github.com/users/brianyu28/repos","events_url":"https://api.github.com/users/brianyu28/events{/privacy}","received_events_url":"https://api.github.com/users/brianyu28/received_events","type":"User","site_admin":false},"repo":{"id":65872645,"name":"help50","full_name":"brianyu28/help50","owner":{"login":"brianyu28","id":16066224,"avatar_url":"https://avatars.githubusercontent.com/u/16066224?v=3","gravatar_id":"","url":"https://api.github.com/users/brianyu28","html_url":"https://github.com/brianyu28","followers_url":"https://api.github.com/users/brianyu28/followers","following_url":"https://api.github.com/users/brianyu28/following{/other_user}","gists_url":"https://api.github.com/users/brianyu28/gists{/gist_id}","starred_url":"https://api.github.com/users/brianyu28/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brianyu28/subscriptions","organizations_url":"https://api.github.com/users/brianyu28/orgs","repos_url":"https://api.github.com/users/brianyu28/repos","events_url":"https://api.github.com/users/brianyu28/events{/privacy}","received_events_url":"https://api.github.com/users/brianyu28/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/brianyu28/help50","description":"This is help50, a command-line tool that helps students understand error messages.","fork":true,"url":"https://api.github.com/repos/brianyu28/help50","forks_url":"https://api.github.com/repos/brianyu28/help50/forks","keys_url":"https://api.github.com/repos/brianyu28/help50/keys{/key_id}","collaborators_url":"https://api.github.com/repos/brianyu28/help50/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/brianyu28/help50/teams","hooks_url":"https://api.github.com/repos/brianyu28/help50/hooks","issue_events_url":"https://api.github.com/repos/brianyu28/help50/issues/events{/number}","events_url":"https://api.github.com/repos/brianyu28/help50/events","assignees_url":"https://api.github.com/repos/brianyu28/help50/assignees{/user}","branches_url":"https://api.github.com/repos/brianyu28/help50/branches{/branch}","tags_url":"https://api.github.com/repos/brianyu28/help50/tags","blobs_url":"https://api.github.com/repos/brianyu28/help50/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/brianyu28/help50/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/brianyu28/help50/git/refs{/sha}","trees_url":"https://api.github.com/repos/brianyu28/help50/git/trees{/sha}","statuses_url":"https://api.github.com/repos/brianyu28/help50/statuses/{sha}","languages_url":"https://api.github.com/repos/brianyu28/help50/languages","stargazers_url":"https://api.github.com/repos/brianyu28/help50/stargazers","contributors_url":"https://api.github.com/repos/brianyu28/help50/contributors","subscribers_url":"https://api.github.com/repos/brianyu28/help50/subscribers","subscription_url":"https://api.github.com/repos/brianyu28/help50/subscription","commits_url":"https://api.github.com/repos/brianyu28/help50/commits{/sha}","git_commits_url":"https://api.github.com/repos/brianyu28/help50/git/commits{/sha}","comments_url":"https://api.github.com/repos/brianyu28/help50/comments{/number}","issue_comment_url":"https://api.github.com/repos/brianyu28/help50/issues/comments{/number}","contents_url":"https://api.github.com/repos/brianyu28/help50/contents/{+path}","compare_url":"https://api.github.com/repos/brianyu28/help50/compare/{base}...{head}","merges_url":"https://api.github.com/repos/brianyu28/help50/merges","archive_url":"https://api.github.com/repos/brianyu28/help50/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/brianyu28/help50/downloads","issues_url":"https://api.github.com/repos/brianyu28/help50/issues{/number}","pulls_url":"https://api.github.com/repos/brianyu28/help50/pulls{/number}","milestones_url":"https://api.github.com/repos/brianyu28/help50/milestones{/number}","notifications_url":"https://api.github.com/repos/brianyu28/help50/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/brianyu28/help50/labels{/name}","releases_url":"https://api.github.com/repos/brianyu28/help50/releases{/id}","deployments_url":"https://api.github.com/repos/brianyu28/help50/deployments","created_at":"2016-08-17T03:21:53Z","updated_at":"2016-09-24T21:21:49Z","pushed_at":"2016-09-25T18:35:11Z","git_url":"git://github.com/brianyu28/help50.git","ssh_url":"git@github.com:brianyu28/help50.git","clone_url":"https://github.com/brianyu28/help50.git","svn_url":"https://github.com/brianyu28/help50","homepage":"https://help.cs50.net/","size":4494,"stargazers_count":2,"watchers_count":2,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":2,"default_branch":"master"}},"base":{"label":"cs50:master","ref":"master","sha":"45985ce1265f3ac37d7fe11a89d784e12e1cae23","user":{"login":"cs50","id":788676,"avatar_url":"https://avatars.githubusercontent.com/u/788676?v=3","gravatar_id":"","url":"https://api.github.com/users/cs50","html_url":"https://github.com/cs50","followers_url":"https://api.github.com/users/cs50/followers","following_url":"https://api.github.com/users/cs50/following{/other_user}","gists_url":"https://api.github.com/users/cs50/gists{/gist_id}","starred_url":"https://api.github.com/users/cs50/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cs50/subscriptions","organizations_url":"https://api.github.com/users/cs50/orgs","repos_url":"https://api.github.com/users/cs50/repos","events_url":"https://api.github.com/users/cs50/events{/privacy}","received_events_url":"https://api.github.com/users/cs50/received_events","type":"Organization","site_admin":false},"repo":{"id":41612467,"name":"help50","full_name":"cs50/help50","owner":{"login":"cs50","id":788676,"avatar_url":"https://avatars.githubusercontent.com/u/788676?v=3","gravatar_id":"","url":"https://api.github.com/users/cs50","html_url":"https://github.com/cs50","followers_url":"https://api.github.com/users/cs50/followers","following_url":"https://api.github.com/users/cs50/following{/other_user}","gists_url":"https://api.github.com/users/cs50/gists{/gist_id}","starred_url":"https://api.github.com/users/cs50/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cs50/subscriptions","organizations_url":"https://api.github.com/users/cs50/orgs","repos_url":"https://api.github.com/users/cs50/repos","events_url":"https://api.github.com/users/cs50/events{/privacy}","received_events_url":"https://api.github.com/users/cs50/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/cs50/help50","description":"This is help50, a command-line tool that helps students understand error messages.","fork":false,"url":"https://api.github.com/repos/cs50/help50","forks_url":"https://api.github.com/repos/cs50/help50/forks","keys_url":"https://api.github.com/repos/cs50/help50/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cs50/help50/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cs50/help50/teams","hooks_url":"https://api.github.com/repos/cs50/help50/hooks","issue_events_url":"https://api.github.com/repos/cs50/help50/issues/events{/number}","events_url":"https://api.github.com/repos/cs50/help50/events","assignees_url":"https://api.github.com/repos/cs50/help50/assignees{/user}","branches_url":"https://api.github.com/repos/cs50/help50/branches{/branch}","tags_url":"https://api.github.com/repos/cs50/help50/tags","blobs_url":"https://api.github.com/repos/cs50/help50/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cs50/help50/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cs50/help50/git/refs{/sha}","trees_url":"https://api.github.com/repos/cs50/help50/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cs50/help50/statuses/{sha}","languages_url":"https://api.github.com/repos/cs50/help50/languages","stargazers_url":"https://api.github.com/repos/cs50/help50/stargazers","contributors_url":"https://api.github.com/repos/cs50/help50/contributors","subscribers_url":"https://api.github.com/repos/cs50/help50/subscribers","subscription_url":"https://api.github.com/repos/cs50/help50/subscription","commits_url":"https://api.github.com/repos/cs50/help50/commits{/sha}","git_commits_url":"https://api.github.com/repos/cs50/help50/git/commits{/sha}","comments_url":"https://api.github.com/repos/cs50/help50/comments{/number}","issue_comment_url":"https://api.github.com/repos/cs50/help50/issues/comments{/number}","contents_url":"https://api.github.com/repos/cs50/help50/contents/{+path}","compare_url":"https://api.github.com/repos/cs50/help50/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cs50/help50/merges","archive_url":"https://api.github.com/repos/cs50/help50/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cs50/help50/downloads","issues_url":"https://api.github.com/repos/cs50/help50/issues{/number}","pulls_url":"https://api.github.com/repos/cs50/help50/pulls{/number}","milestones_url":"https://api.github.com/repos/cs50/help50/milestones{/number}","notifications_url":"https://api.github.com/repos/cs50/help50/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cs50/help50/labels{/name}","releases_url":"https://api.github.com/repos/cs50/help50/releases{/id}","deployments_url":"https://api.github.com/repos/cs50/help50/deployments","created_at":"2015-08-30T01:15:28Z","updated_at":"2016-09-19T01:34:57Z","pushed_at":"2016-09-25T18:39:40Z","git_url":"git://github.com/cs50/help50.git","ssh_url":"git@github.com:cs50/help50.git","clone_url":"https://github.com/cs50/help50.git","svn_url":"https://github.com/cs50/help50","homepage":"https://cs50.harvard.edu/","size":4536,"stargazers_count":5,"watchers_count":5,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":54,"mirror_url":null,"open_issues_count":102,"forks":54,"open_issues":102,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/cs50/help50/pulls/198"},"html":{"href":"https://github.com/cs50/help50/pull/198"},"issue":{"href":"https://api.github.com/repos/cs50/help50/issues/198"},"comments":{"href":"https://api.github.com/repos/cs50/help50/issues/198/comments"},"review_comments":{"href":"https://api.github.com/repos/cs50/help50/pulls/198/comments"},"review_comment":{"href":"https://api.github.com/repos/cs50/help50/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/cs50/help50/pulls/198/commits"},"statuses":{"href":"https://api.github.com/repos/cs50/help50/statuses/3934f7ab50cf0d2d99ab4ac5d7290f004dc84763"}}}}
{"actor":{"display_login":"dmalan"}}