{"action":"created","issue":{"url":"https://api.github.com/repos/OP-TEE/optee_os/issues/644","repository_url":"https://api.github.com/repos/OP-TEE/optee_os","labels_url":"https://api.github.com/repos/OP-TEE/optee_os/issues/644/labels{/name}","comments_url":"https://api.github.com/repos/OP-TEE/optee_os/issues/644/comments","events_url":"https://api.github.com/repos/OP-TEE/optee_os/issues/644/events","html_url":"https://github.com/OP-TEE/optee_os/pull/644","id":132103730,"number":644,"title":"core: stack unwinding","user":{"login":"jenswi-linaro","id":6150306,"avatar_url":"https://avatars.githubusercontent.com/u/6150306?v=3","gravatar_id":"","url":"https://api.github.com/users/jenswi-linaro","html_url":"https://github.com/jenswi-linaro","followers_url":"https://api.github.com/users/jenswi-linaro/followers","following_url":"https://api.github.com/users/jenswi-linaro/following{/other_user}","gists_url":"https://api.github.com/users/jenswi-linaro/gists{/gist_id}","starred_url":"https://api.github.com/users/jenswi-linaro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenswi-linaro/subscriptions","organizations_url":"https://api.github.com/users/jenswi-linaro/orgs","repos_url":"https://api.github.com/users/jenswi-linaro/repos","events_url":"https://api.github.com/users/jenswi-linaro/events{/privacy}","received_events_url":"https://api.github.com/users/jenswi-linaro/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-02-08T10:26:53Z","updated_at":"2016-02-09T08:53:31Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/OP-TEE/optee_os/pulls/644","html_url":"https://github.com/OP-TEE/optee_os/pull/644","diff_url":"https://github.com/OP-TEE/optee_os/pull/644.diff","patch_url":"https://github.com/OP-TEE/optee_os/pull/644.patch"},"body":"Adds support for stack unwinding, currently only done for fatal aborts\r\nfrom kernel mode if CFG_CORE_UNWIND = y\r\n\r\nThe ARMv7/Aarch32 implementation uses -funwind-tables to generate frame\r\nunwinding information which is quite large. Enabling stack unwinding\r\ncurrently consumes ~8 KiB. The code to parse the frame unwind\r\ninformation is imported from FreeBSD.\r\n\r\nThe Aarch64 implementation takes advantage of the frame pointer and has\r\nminimal overhead. The core code to unwind the stack is imported from\r\nFreeBSD.\r\n\r\nTested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU, FVP)\r\nSigned-off-by: Jens Wiklander <jens.wiklander@linaro.org>"},"comment":{"url":"https://api.github.com/repos/OP-TEE/optee_os/issues/comments/181766002","html_url":"https://github.com/OP-TEE/optee_os/pull/644#issuecomment-181766002","issue_url":"https://api.github.com/repos/OP-TEE/optee_os/issues/644","id":181766002,"user":{"login":"jforissier","id":8288195,"avatar_url":"https://avatars.githubusercontent.com/u/8288195?v=3","gravatar_id":"","url":"https://api.github.com/users/jforissier","html_url":"https://github.com/jforissier","followers_url":"https://api.github.com/users/jforissier/followers","following_url":"https://api.github.com/users/jforissier/following{/other_user}","gists_url":"https://api.github.com/users/jforissier/gists{/gist_id}","starred_url":"https://api.github.com/users/jforissier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jforissier/subscriptions","organizations_url":"https://api.github.com/users/jforissier/orgs","repos_url":"https://api.github.com/users/jforissier/repos","events_url":"https://api.github.com/users/jforissier/events{/privacy}","received_events_url":"https://api.github.com/users/jforissier/received_events","type":"User","site_admin":false},"created_at":"2016-02-09T08:53:31Z","updated_at":"2016-02-09T08:53:31Z","body":"Nice and convenient feature!\r\n`Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>`\r\n`Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey 32/64)`"}}