{"action":"created","issue":{"url":"https://api.github.com/repos/pwndbg/pwndbg/issues/140","repository_url":"https://api.github.com/repos/pwndbg/pwndbg","labels_url":"https://api.github.com/repos/pwndbg/pwndbg/issues/140/labels{/name}","comments_url":"https://api.github.com/repos/pwndbg/pwndbg/issues/140/comments","events_url":"https://api.github.com/repos/pwndbg/pwndbg/issues/140/events","html_url":"https://github.com/pwndbg/pwndbg/pull/140","id":194295645,"number":140,"title":"Added heap operations","user":{"login":"blendin","id":20363764,"avatar_url":"https://avatars.githubusercontent.com/u/20363764?v=3","gravatar_id":"","url":"https://api.github.com/users/blendin","html_url":"https://github.com/blendin","followers_url":"https://api.github.com/users/blendin/followers","following_url":"https://api.github.com/users/blendin/following{/other_user}","gists_url":"https://api.github.com/users/blendin/gists{/gist_id}","starred_url":"https://api.github.com/users/blendin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blendin/subscriptions","organizations_url":"https://api.github.com/users/blendin/orgs","repos_url":"https://api.github.com/users/blendin/repos","events_url":"https://api.github.com/users/blendin/events{/privacy}","received_events_url":"https://api.github.com/users/blendin/received_events","type":"User","site_admin":false},"labels":[{"id":179818308,"url":"https://api.github.com/repos/pwndbg/pwndbg/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":{"login":"zachriggle","id":111640,"avatar_url":"https://avatars.githubusercontent.com/u/111640?v=3","gravatar_id":"","url":"https://api.github.com/users/zachriggle","html_url":"https://github.com/zachriggle","followers_url":"https://api.github.com/users/zachriggle/followers","following_url":"https://api.github.com/users/zachriggle/following{/other_user}","gists_url":"https://api.github.com/users/zachriggle/gists{/gist_id}","starred_url":"https://api.github.com/users/zachriggle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zachriggle/subscriptions","organizations_url":"https://api.github.com/users/zachriggle/orgs","repos_url":"https://api.github.com/users/zachriggle/repos","events_url":"https://api.github.com/users/zachriggle/events{/privacy}","received_events_url":"https://api.github.com/users/zachriggle/received_events","type":"User","site_admin":false},"assignees":[{"login":"zachriggle","id":111640,"avatar_url":"https://avatars.githubusercontent.com/u/111640?v=3","gravatar_id":"","url":"https://api.github.com/users/zachriggle","html_url":"https://github.com/zachriggle","followers_url":"https://api.github.com/users/zachriggle/followers","following_url":"https://api.github.com/users/zachriggle/following{/other_user}","gists_url":"https://api.github.com/users/zachriggle/gists{/gist_id}","starred_url":"https://api.github.com/users/zachriggle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zachriggle/subscriptions","organizations_url":"https://api.github.com/users/zachriggle/orgs","repos_url":"https://api.github.com/users/zachriggle/repos","events_url":"https://api.github.com/users/zachriggle/events{/privacy}","received_events_url":"https://api.github.com/users/zachriggle/received_events","type":"User","site_admin":false}],"milestone":null,"comments":6,"created_at":"2016-12-08T10:12:37Z","updated_at":"2016-12-20T19:08:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/pwndbg/pwndbg/pulls/140","html_url":"https://github.com/pwndbg/pwndbg/pull/140","diff_url":"https://github.com/pwndbg/pwndbg/pull/140.diff","patch_url":"https://github.com/pwndbg/pwndbg/pull/140.patch"},"body":"### Completed\r\n- Implemented command **unsortedbin** to print the unsorted bin.\r\n- Implemented command **smallbins** to print small bins.\r\n- Implemented command **largebins** to print large bins.\r\n- Implemented command **fastbins** to print the fast bins.\r\n- Completed the **bin** command to print all bins.\r\n- Changed heap, arena, and top_chunk commands to use the current heap implementation.\r\n- Made bin commands default to only show bins in use (linked lists with more than one node).\r\n- Added an extra parameter to **pwndbg.chain.get** that specifies a value that when reached stops the chain from continuing. \r\n- Augmented `pwndbg.chain.format` to accept lists (result from pwndbg.chain.get) as an argument.\r\n- Use `malloc_par` struct (**mp_**) from glibc to determine _sbrk_base_ so heap base is more reliable. This fixes the bug in some ubuntu versions where a large _.bss_ can cause **[heap]** in _/proc/$(pid)/maps_ to be different from the actual start of the ptmalloc heap.\r\n- Added a ptmalloc constants file to the constants/ directory, the spaces tables were brute forced using `largebin_index_32` and `largebin_index_64` functions from glibc's malloc.c\r\n\r\n### Future work\r\n- Add function to ptmalloc's Heap class that prints out a full representation of the heap.\r\n- Implement other heap interfaces such as dlmalloc, tcmalloc, jemalloc.\r\n- Trace calls to malloc, free, and malloc_consolidate.\r\n- Automatically detect broken links in bins.\r\n- Add flags for verbose and arena_addr to heap commands."},"comment":{"url":"https://api.github.com/repos/pwndbg/pwndbg/issues/comments/268329424","html_url":"https://github.com/pwndbg/pwndbg/pull/140#issuecomment-268329424","issue_url":"https://api.github.com/repos/pwndbg/pwndbg/issues/140","id":268329424,"user":{"login":"zachriggle","id":111640,"avatar_url":"https://avatars.githubusercontent.com/u/111640?v=3","gravatar_id":"","url":"https://api.github.com/users/zachriggle","html_url":"https://github.com/zachriggle","followers_url":"https://api.github.com/users/zachriggle/followers","following_url":"https://api.github.com/users/zachriggle/following{/other_user}","gists_url":"https://api.github.com/users/zachriggle/gists{/gist_id}","starred_url":"https://api.github.com/users/zachriggle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zachriggle/subscriptions","organizations_url":"https://api.github.com/users/zachriggle/orgs","repos_url":"https://api.github.com/users/zachriggle/repos","events_url":"https://api.github.com/users/zachriggle/events{/privacy}","received_events_url":"https://api.github.com/users/zachriggle/received_events","type":"User","site_admin":false},"created_at":"2016-12-20T19:08:19Z","updated_at":"2016-12-20T19:08:19Z","body":"Just waiting on the `memoize` updates (see review), and fixing the merge conflicts."}}
{"actor":{"display_login":"zachriggle"}}