{"action":"closed","number":3309,"pull_request":{"url":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3309","id":238372754,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM4MzcyNzU0","html_url":"https://github.com/DynamoRIO/dynamorio/pull/3309","diff_url":"https://github.com/DynamoRIO/dynamorio/pull/3309.diff","patch_url":"https://github.com/DynamoRIO/dynamorio/pull/3309.patch","issue_url":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/3309","number":3309,"state":"closed","locked":false,"title":"Fix -use_ptrace cannot run.","user":{"login":"summershrimp","id":10265470,"node_id":"MDQ6VXNlcjEwMjY1NDcw","avatar_url":"https://avatars3.githubusercontent.com/u/10265470?v=4","gravatar_id":"","url":"https://api.github.com/users/summershrimp","html_url":"https://github.com/summershrimp","followers_url":"https://api.github.com/users/summershrimp/followers","following_url":"https://api.github.com/users/summershrimp/following{/other_user}","gists_url":"https://api.github.com/users/summershrimp/gists{/gist_id}","starred_url":"https://api.github.com/users/summershrimp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/summershrimp/subscriptions","organizations_url":"https://api.github.com/users/summershrimp/orgs","repos_url":"https://api.github.com/users/summershrimp/repos","events_url":"https://api.github.com/users/summershrimp/events{/privacy}","received_events_url":"https://api.github.com/users/summershrimp/received_events","type":"User","site_admin":false},"body":"This problem mainly caused by `get_application_name_helper`\r\nthinks that ptraced child is also early_inject, we cannot resolve `executable_path`\r\nby `readlink(\"/proc/self/exe\")` But, when we use `-use_ptrace` to start child process, we can read\r\nexecutable path from `/proc/self/exe` correctly. And also ptraced child process have already been through system loader. So we consider ptraced child is not `early_inject`.\r\n\r\nAfter this, the `inject_ptrace`(parent process) always get SIGILL\r\nsignal. After digging it out, it's caused by `signal_arch_init` set\r\n`vfp_query_signal_handler` to handle SIGILL, but `inject_ptrace`\r\nforget to pass this signal to child. So we just pass it.\r\n\r\nAlso, in order to debugging `privload_early_inject`, I send SIGSTOP\r\nto child process before detach and invoke gdb in `detach_and_exec_gdb`.","created_at":"2018-12-13T12:30:54Z","updated_at":"2018-12-18T17:09:58Z","closed_at":"2018-12-18T17:09:58Z","merged_at":"2018-12-18T17:09:58Z","merge_commit_sha":"c1cabe0a3b928736f343d5962ee17a12f336ee90","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3309/commits","review_comments_url":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3309/comments","review_comment_url":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/comments{/number}","comments_url":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/3309/comments","statuses_url":"https://api.github.com/repos/DynamoRIO/dynamorio/statuses/8c9e13c21e984fc843538ee8dd4a499835297d39","head":{"label":"summershrimp:fix-ptrace","ref":"fix-ptrace","sha":"8c9e13c21e984fc843538ee8dd4a499835297d39","user":{"login":"summershrimp","id":10265470,"node_id":"MDQ6VXNlcjEwMjY1NDcw","avatar_url":"https://avatars3.githubusercontent.com/u/10265470?v=4","gravatar_id":"","url":"https://api.github.com/users/summershrimp","html_url":"https://github.com/summershrimp","followers_url":"https://api.github.com/users/summershrimp/followers","following_url":"https://api.github.com/users/summershrimp/following{/other_user}","gists_url":"https://api.github.com/users/summershrimp/gists{/gist_id}","starred_url":"https://api.github.com/users/summershrimp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/summershrimp/subscriptions","organizations_url":"https://api.github.com/users/summershrimp/orgs","repos_url":"https://api.github.com/users/summershrimp/repos","events_url":"https://api.github.com/users/summershrimp/events{/privacy}","received_events_url":"https://api.github.com/users/summershrimp/received_events","type":"User","site_admin":false},"repo":{"id":161635069,"node_id":"MDEwOlJlcG9zaXRvcnkxNjE2MzUwNjk=","name":"dynamorio","full_name":"summershrimp/dynamorio","private":false,"owner":{"login":"summershrimp","id":10265470,"node_id":"MDQ6VXNlcjEwMjY1NDcw","avatar_url":"https://avatars3.githubusercontent.com/u/10265470?v=4","gravatar_id":"","url":"https://api.github.com/users/summershrimp","html_url":"https://github.com/summershrimp","followers_url":"https://api.github.com/users/summershrimp/followers","following_url":"https://api.github.com/users/summershrimp/following{/other_user}","gists_url":"https://api.github.com/users/summershrimp/gists{/gist_id}","starred_url":"https://api.github.com/users/summershrimp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/summershrimp/subscriptions","organizations_url":"https://api.github.com/users/summershrimp/orgs","repos_url":"https://api.github.com/users/summershrimp/repos","events_url":"https://api.github.com/users/summershrimp/events{/privacy}","received_events_url":"https://api.github.com/users/summershrimp/received_events","type":"User","site_admin":false},"html_url":"https://github.com/summershrimp/dynamorio","description":"Dynamic Instrumentation Tool Platform","fork":true,"url":"https://api.github.com/repos/summershrimp/dynamorio","forks_url":"https://api.github.com/repos/summershrimp/dynamorio/forks","keys_url":"https://api.github.com/repos/summershrimp/dynamorio/keys{/key_id}","collaborators_url":"https://api.github.com/repos/summershrimp/dynamorio/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/summershrimp/dynamorio/teams","hooks_url":"https://api.github.com/repos/summershrimp/dynamorio/hooks","issue_events_url":"https://api.github.com/repos/summershrimp/dynamorio/issues/events{/number}","events_url":"https://api.github.com/repos/summershrimp/dynamorio/events","assignees_url":"https://api.github.com/repos/summershrimp/dynamorio/assignees{/user}","branches_url":"https://api.github.com/repos/summershrimp/dynamorio/branches{/branch}","tags_url":"https://api.github.com/repos/summershrimp/dynamorio/tags","blobs_url":"https://api.github.com/repos/summershrimp/dynamorio/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/summershrimp/dynamorio/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/summershrimp/dynamorio/git/refs{/sha}","trees_url":"https://api.github.com/repos/summershrimp/dynamorio/git/trees{/sha}","statuses_url":"https://api.github.com/repos/summershrimp/dynamorio/statuses/{sha}","languages_url":"https://api.github.com/repos/summershrimp/dynamorio/languages","stargazers_url":"https://api.github.com/repos/summershrimp/dynamorio/stargazers","contributors_url":"https://api.github.com/repos/summershrimp/dynamorio/contributors","subscribers_url":"https://api.github.com/repos/summershrimp/dynamorio/subscribers","subscription_url":"https://api.github.com/repos/summershrimp/dynamorio/subscription","commits_url":"https://api.github.com/repos/summershrimp/dynamorio/commits{/sha}","git_commits_url":"https://api.github.com/repos/summershrimp/dynamorio/git/commits{/sha}","comments_url":"https://api.github.com/repos/summershrimp/dynamorio/comments{/number}","issue_comment_url":"https://api.github.com/repos/summershrimp/dynamorio/issues/comments{/number}","contents_url":"https://api.github.com/repos/summershrimp/dynamorio/contents/{+path}","compare_url":"https://api.github.com/repos/summershrimp/dynamorio/compare/{base}...{head}","merges_url":"https://api.github.com/repos/summershrimp/dynamorio/merges","archive_url":"https://api.github.com/repos/summershrimp/dynamorio/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/summershrimp/dynamorio/downloads","issues_url":"https://api.github.com/repos/summershrimp/dynamorio/issues{/number}","pulls_url":"https://api.github.com/repos/summershrimp/dynamorio/pulls{/number}","milestones_url":"https://api.github.com/repos/summershrimp/dynamorio/milestones{/number}","notifications_url":"https://api.github.com/repos/summershrimp/dynamorio/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/summershrimp/dynamorio/labels{/name}","releases_url":"https://api.github.com/repos/summershrimp/dynamorio/releases{/id}","deployments_url":"https://api.github.com/repos/summershrimp/dynamorio/deployments","created_at":"2018-12-13T12:20:29Z","updated_at":"2018-12-13T12:20:38Z","pushed_at":"2018-12-18T16:44:35Z","git_url":"git://github.com/summershrimp/dynamorio.git","ssh_url":"git@github.com:summershrimp/dynamorio.git","clone_url":"https://github.com/summershrimp/dynamorio.git","svn_url":"https://github.com/summershrimp/dynamorio","homepage":null,"size":49120,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"DynamoRIO:master","ref":"master","sha":"8eab5bf14881d6635731fcd17e5807767c8aea50","user":{"login":"DynamoRIO","id":9010155,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkwMTAxNTU=","avatar_url":"https://avatars2.githubusercontent.com/u/9010155?v=4","gravatar_id":"","url":"https://api.github.com/users/DynamoRIO","html_url":"https://github.com/DynamoRIO","followers_url":"https://api.github.com/users/DynamoRIO/followers","following_url":"https://api.github.com/users/DynamoRIO/following{/other_user}","gists_url":"https://api.github.com/users/DynamoRIO/gists{/gist_id}","starred_url":"https://api.github.com/users/DynamoRIO/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DynamoRIO/subscriptions","organizations_url":"https://api.github.com/users/DynamoRIO/orgs","repos_url":"https://api.github.com/users/DynamoRIO/repos","events_url":"https://api.github.com/users/DynamoRIO/events{/privacy}","received_events_url":"https://api.github.com/users/DynamoRIO/received_events","type":"Organization","site_admin":false},"repo":{"id":27242935,"node_id":"MDEwOlJlcG9zaXRvcnkyNzI0MjkzNQ==","name":"dynamorio","full_name":"DynamoRIO/dynamorio","private":false,"owner":{"login":"DynamoRIO","id":9010155,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkwMTAxNTU=","avatar_url":"https://avatars2.githubusercontent.com/u/9010155?v=4","gravatar_id":"","url":"https://api.github.com/users/DynamoRIO","html_url":"https://github.com/DynamoRIO","followers_url":"https://api.github.com/users/DynamoRIO/followers","following_url":"https://api.github.com/users/DynamoRIO/following{/other_user}","gists_url":"https://api.github.com/users/DynamoRIO/gists{/gist_id}","starred_url":"https://api.github.com/users/DynamoRIO/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DynamoRIO/subscriptions","organizations_url":"https://api.github.com/users/DynamoRIO/orgs","repos_url":"https://api.github.com/users/DynamoRIO/repos","events_url":"https://api.github.com/users/DynamoRIO/events{/privacy}","received_events_url":"https://api.github.com/users/DynamoRIO/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/DynamoRIO/dynamorio","description":"Dynamic Instrumentation Tool Platform","fork":false,"url":"https://api.github.com/repos/DynamoRIO/dynamorio","forks_url":"https://api.github.com/repos/DynamoRIO/dynamorio/forks","keys_url":"https://api.github.com/repos/DynamoRIO/dynamorio/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DynamoRIO/dynamorio/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DynamoRIO/dynamorio/teams","hooks_url":"https://api.github.com/repos/DynamoRIO/dynamorio/hooks","issue_events_url":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/events{/number}","events_url":"https://api.github.com/repos/DynamoRIO/dynamorio/events","assignees_url":"https://api.github.com/repos/DynamoRIO/dynamorio/assignees{/user}","branches_url":"https://api.github.com/repos/DynamoRIO/dynamorio/branches{/branch}","tags_url":"https://api.github.com/repos/DynamoRIO/dynamorio/tags","blobs_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/refs{/sha}","trees_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DynamoRIO/dynamorio/statuses/{sha}","languages_url":"https://api.github.com/repos/DynamoRIO/dynamorio/languages","stargazers_url":"https://api.github.com/repos/DynamoRIO/dynamorio/stargazers","contributors_url":"https://api.github.com/repos/DynamoRIO/dynamorio/contributors","subscribers_url":"https://api.github.com/repos/DynamoRIO/dynamorio/subscribers","subscription_url":"https://api.github.com/repos/DynamoRIO/dynamorio/subscription","commits_url":"https://api.github.com/repos/DynamoRIO/dynamorio/commits{/sha}","git_commits_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/commits{/sha}","comments_url":"https://api.github.com/repos/DynamoRIO/dynamorio/comments{/number}","issue_comment_url":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/comments{/number}","contents_url":"https://api.github.com/repos/DynamoRIO/dynamorio/contents/{+path}","compare_url":"https://api.github.com/repos/DynamoRIO/dynamorio/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DynamoRIO/dynamorio/merges","archive_url":"https://api.github.com/repos/DynamoRIO/dynamorio/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DynamoRIO/dynamorio/downloads","issues_url":"https://api.github.com/repos/DynamoRIO/dynamorio/issues{/number}","pulls_url":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls{/number}","milestones_url":"https://api.github.com/repos/DynamoRIO/dynamorio/milestones{/number}","notifications_url":"https://api.github.com/repos/DynamoRIO/dynamorio/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DynamoRIO/dynamorio/labels{/name}","releases_url":"https://api.github.com/repos/DynamoRIO/dynamorio/releases{/id}","deployments_url":"https://api.github.com/repos/DynamoRIO/dynamorio/deployments","created_at":"2014-11-27T22:08:34Z","updated_at":"2018-12-18T12:30:52Z","pushed_at":"2018-12-18T17:09:58Z","git_url":"git://github.com/DynamoRIO/dynamorio.git","ssh_url":"git@github.com:DynamoRIO/dynamorio.git","clone_url":"https://github.com/DynamoRIO/dynamorio.git","svn_url":"https://github.com/DynamoRIO/dynamorio","homepage":null,"size":49083,"stargazers_count":838,"watchers_count":838,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":226,"mirror_url":null,"archived":false,"open_issues_count":1091,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":226,"open_issues":1091,"watchers":838,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3309"},"html":{"href":"https://github.com/DynamoRIO/dynamorio/pull/3309"},"issue":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/3309"},"comments":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/3309/comments"},"review_comments":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3309/comments"},"review_comment":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3309/commits"},"statuses":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/statuses/8c9e13c21e984fc843538ee8dd4a499835297d39"}},"author_association":"NONE","merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"derekbruening","id":6509618,"node_id":"MDQ6VXNlcjY1MDk2MTg=","avatar_url":"https://avatars1.githubusercontent.com/u/6509618?v=4","gravatar_id":"","url":"https://api.github.com/users/derekbruening","html_url":"https://github.com/derekbruening","followers_url":"https://api.github.com/users/derekbruening/followers","following_url":"https://api.github.com/users/derekbruening/following{/other_user}","gists_url":"https://api.github.com/users/derekbruening/gists{/gist_id}","starred_url":"https://api.github.com/users/derekbruening/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/derekbruening/subscriptions","organizations_url":"https://api.github.com/users/derekbruening/orgs","repos_url":"https://api.github.com/users/derekbruening/repos","events_url":"https://api.github.com/users/derekbruening/events{/privacy}","received_events_url":"https://api.github.com/users/derekbruening/received_events","type":"User","site_admin":false},"comments":7,"review_comments":7,"maintainer_can_modify":false,"commits":5,"additions":14,"deletions":9,"changed_files":2}}
{"actor":{"display_login":"derekbruening"}}