{"action":"created","issue":{"url":"https://api.github.com/repos/pwndbg/pwndbg/issues/264","repository_url":"https://api.github.com/repos/pwndbg/pwndbg","labels_url":"https://api.github.com/repos/pwndbg/pwndbg/issues/264/labels{/name}","comments_url":"https://api.github.com/repos/pwndbg/pwndbg/issues/264/comments","events_url":"https://api.github.com/repos/pwndbg/pwndbg/issues/264/events","html_url":"https://github.com/pwndbg/pwndbg/issues/264","id":226771695,"number":264,"title":"Bare metal debugging","user":{"login":"RageYL","id":7813795,"avatar_url":"https://avatars1.githubusercontent.com/u/7813795?v=3","gravatar_id":"","url":"https://api.github.com/users/RageYL","html_url":"https://github.com/RageYL","followers_url":"https://api.github.com/users/RageYL/followers","following_url":"https://api.github.com/users/RageYL/following{/other_user}","gists_url":"https://api.github.com/users/RageYL/gists{/gist_id}","starred_url":"https://api.github.com/users/RageYL/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RageYL/subscriptions","organizations_url":"https://api.github.com/users/RageYL/orgs","repos_url":"https://api.github.com/users/RageYL/repos","events_url":"https://api.github.com/users/RageYL/events{/privacy}","received_events_url":"https://api.github.com/users/RageYL/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2017-05-06T13:41:32Z","updated_at":"2017-05-10T21:28:16Z","closed_at":null,"body":"Hi,\r\n\r\nWhen debugging on a bare metal mcu (arm, cortex-m4 processor) pwndbg 'hang' immediately after the connection with the remote gdbserver has been established\r\n\r\n1) AUXV are not present: pwndbg tries to find those and will end up searching the whole memory (walk_stack2)\r\n2) $xpsr is used instead of $cpsr. it uses a different bit to indicate thumb mode ($ps is not available on this arch)\r\nxpsr: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0413d/ch02s02s02.html\r\n3) find_upper/lower_boundary is slow (each memory dereference is slow on remote): in my case max_pages is reached, it takes 30 seconds to display registers...\r\n\r\nidea for 1) 2) 3):\r\nthe input binary contains lots of information that could be very useful:\r\n- immediately available (do not look for them in the memory, eg: entry point)\r\n- disable unneeded operations (no auxv with a cortex-m4, readelf -A)\r\n\r\nidea 2)\r\nit would be nice to display context without crashing even if a register is not found"},"comment":{"url":"https://api.github.com/repos/pwndbg/pwndbg/issues/comments/300617860","html_url":"https://github.com/pwndbg/pwndbg/issues/264#issuecomment-300617860","issue_url":"https://api.github.com/repos/pwndbg/pwndbg/issues/264","id":300617860,"user":{"login":"zachriggle","id":111640,"avatar_url":"https://avatars3.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":"2017-05-10T21:28:16Z","updated_at":"2017-05-10T21:28:16Z","body":"It might be useful to have a `@pwndbg.abi.Linux` decorator that does some magic"}}
{"actor":{"display_login":"zachriggle"}}