{"action":"created","issue":{"url":"https://api.github.com/repos/riscv/riscv-isa-sim/issues/39","repository_url":"https://api.github.com/repos/riscv/riscv-isa-sim","labels_url":"https://api.github.com/repos/riscv/riscv-isa-sim/issues/39/labels{/name}","comments_url":"https://api.github.com/repos/riscv/riscv-isa-sim/issues/39/comments","events_url":"https://api.github.com/repos/riscv/riscv-isa-sim/issues/39/events","html_url":"https://github.com/riscv/riscv-isa-sim/pull/39","id":142100248,"number":39,"title":"WIP on allowing gdb to connect to spike","user":{"login":"timsifive","id":16123885,"avatar_url":"https://avatars.githubusercontent.com/u/16123885?v=3","gravatar_id":"","url":"https://api.github.com/users/timsifive","html_url":"https://github.com/timsifive","followers_url":"https://api.github.com/users/timsifive/followers","following_url":"https://api.github.com/users/timsifive/following{/other_user}","gists_url":"https://api.github.com/users/timsifive/gists{/gist_id}","starred_url":"https://api.github.com/users/timsifive/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timsifive/subscriptions","organizations_url":"https://api.github.com/users/timsifive/orgs","repos_url":"https://api.github.com/users/timsifive/repos","events_url":"https://api.github.com/users/timsifive/events{/privacy}","received_events_url":"https://api.github.com/users/timsifive/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2016-03-19T20:58:16Z","updated_at":"2016-03-24T00:49:08Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/riscv/riscv-isa-sim/pulls/39","html_url":"https://github.com/riscv/riscv-isa-sim/pull/39","diff_url":"https://github.com/riscv/riscv-isa-sim/pull/39.diff","patch_url":"https://github.com/riscv/riscv-isa-sim/pull/39.patch"},"body":"This code isn't done, but it is possible to use gdb to connect to spike to debug a program (inspect/modify variables/registers, step, halt, use software breakpoints). There are probably bugs and corner cases remaining to be implemented. At the very least it'd be nice to support more than one core. That said, I'd rather get code reviewed sooner than later. (Arguably I've waited too long already.)\r\n\r\nNote that accessing CSR registers this code assumes [this pull request](https://github.com/riscv/riscv-binutils-gdb/pull/6) has been accepted to gdb. Debugging should work fine without this change as long as you don't access any CSRs.\r\n\r\nSome other changes that crept in while I was working on this:\r\n1. Treat compiler warnings as errors. The code is currently clean, and that's the best way to keep it that way.\r\n2. Extend the 'make check' mechanism (which wasn't used in any case) to support scripts or other binaries besides C++ source."},"comment":{"url":"https://api.github.com/repos/riscv/riscv-isa-sim/issues/comments/200600299","html_url":"https://github.com/riscv/riscv-isa-sim/pull/39#issuecomment-200600299","issue_url":"https://api.github.com/repos/riscv/riscv-isa-sim/issues/39","id":200600299,"user":{"login":"ccelio","id":788854,"avatar_url":"https://avatars.githubusercontent.com/u/788854?v=3","gravatar_id":"","url":"https://api.github.com/users/ccelio","html_url":"https://github.com/ccelio","followers_url":"https://api.github.com/users/ccelio/followers","following_url":"https://api.github.com/users/ccelio/following{/other_user}","gists_url":"https://api.github.com/users/ccelio/gists{/gist_id}","starred_url":"https://api.github.com/users/ccelio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ccelio/subscriptions","organizations_url":"https://api.github.com/users/ccelio/orgs","repos_url":"https://api.github.com/users/ccelio/repos","events_url":"https://api.github.com/users/ccelio/events{/privacy}","received_events_url":"https://api.github.com/users/ccelio/received_events","type":"User","site_admin":false},"created_at":"2016-03-24T00:49:08Z","updated_at":"2016-03-24T00:49:08Z","body":"I can't speak for Andrew, but I only see notifications for new pull requests, issues, and comments on PRs and Issues. Any commits - to master or to PRs - are invisible. "}}