{"action":"created","issue":{"url":"https://api.github.com/repos/REhints/HexRaysCodeXplorer/issues/18","repository_url":"https://api.github.com/repos/REhints/HexRaysCodeXplorer","labels_url":"https://api.github.com/repos/REhints/HexRaysCodeXplorer/issues/18/labels{/name}","comments_url":"https://api.github.com/repos/REhints/HexRaysCodeXplorer/issues/18/comments","events_url":"https://api.github.com/repos/REhints/HexRaysCodeXplorer/issues/18/events","html_url":"https://github.com/REhints/HexRaysCodeXplorer/issues/18","id":108417094,"number":18,"title":"How to reconstruct type from multiple locations?","user":{"login":"temp331674","id":13005361,"avatar_url":"https://avatars.githubusercontent.com/u/13005361?v=3","gravatar_id":"","url":"https://api.github.com/users/temp331674","html_url":"https://github.com/temp331674","followers_url":"https://api.github.com/users/temp331674/followers","following_url":"https://api.github.com/users/temp331674/following{/other_user}","gists_url":"https://api.github.com/users/temp331674/gists{/gist_id}","starred_url":"https://api.github.com/users/temp331674/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/temp331674/subscriptions","organizations_url":"https://api.github.com/users/temp331674/orgs","repos_url":"https://api.github.com/users/temp331674/repos","events_url":"https://api.github.com/users/temp331674/events{/privacy}","received_events_url":"https://api.github.com/users/temp331674/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/REhints/HexRaysCodeXplorer/labels/feature","name":"feature","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-09-25T22:21:51Z","updated_at":"2016-02-29T21:09:47Z","closed_at":null,"body":"I'm wondering if it's possible to reconstruct a type from multiple functions. For example, this function assigns the vtable but it does not use all fields.\r\n\r\nBefore reconstruct type:\r\n\r\n![image](https://cloud.githubusercontent.com/assets/13005361/10113355/ca897f9e-63e3-11e5-9bad-e9b14aab6ba3.png)\r\n\r\nAfter reconstruct type:\r\n\r\n![image](https://cloud.githubusercontent.com/assets/13005361/10113360/db387c6e-63e3-11e5-987e-cedf214f7fd1.png)\r\n\r\nThat works perfectly. However, it only creates the fields that are specifically used here.\r\n\r\nMany more fields of this type are only used in other functions. Reconstruct type seems to just load the existing struct instead of adding newly discovered fields, resulting in weird gap_F8[44] fields. (v2 is a NetConnection *)\r\n\r\n![image](https://cloud.githubusercontent.com/assets/13005361/10113400/2ba58674-63e4-11e5-85f5-ea8096126b4a.png)\r\n\r\nDoes your plugin or IDA itself provide an easy way to solve this?\r\n"},"comment":{"url":"https://api.github.com/repos/REhints/HexRaysCodeXplorer/issues/comments/190396649","html_url":"https://github.com/REhints/HexRaysCodeXplorer/issues/18#issuecomment-190396649","issue_url":"https://api.github.com/repos/REhints/HexRaysCodeXplorer/issues/18","id":190396649,"user":{"login":"mrgreywater","id":2902403,"avatar_url":"https://avatars.githubusercontent.com/u/2902403?v=3","gravatar_id":"","url":"https://api.github.com/users/mrgreywater","html_url":"https://github.com/mrgreywater","followers_url":"https://api.github.com/users/mrgreywater/followers","following_url":"https://api.github.com/users/mrgreywater/following{/other_user}","gists_url":"https://api.github.com/users/mrgreywater/gists{/gist_id}","starred_url":"https://api.github.com/users/mrgreywater/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrgreywater/subscriptions","organizations_url":"https://api.github.com/users/mrgreywater/orgs","repos_url":"https://api.github.com/users/mrgreywater/repos","events_url":"https://api.github.com/users/mrgreywater/events{/privacy}","received_events_url":"https://api.github.com/users/mrgreywater/received_events","type":"User","site_admin":false},"created_at":"2016-02-29T21:09:47Z","updated_at":"2016-02-29T21:09:47Z","body":"+1"}}