)]}'
{
  "commit": "4e8f9153d9708b35c9fff08ffca63eace1ef93b0",
  "tree": "a75570a20235132d913b6ec25a2fb5d83d9da9f8",
  "parents": [
    "ef25a585df5cca26c0557ff17d32c03763ea583a"
  ],
  "author": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Wed Jan 15 14:49:15 2014 -0800"
  },
  "committer": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Wed Jan 15 14:49:15 2014 -0800"
  },
  "message": "Better debugging support\n\nNow builds 64b with debugging support, and on x86, it retains the original 64b\nobject.  Once we objcopy, we lose the ability to use some debugging tools, such\nas addr2line.\n\nThis retains the 64bit original version of the kernel, which will be large if\nyou use a big KFS.  But no one should be doing that anymore.  If you do, you\ncan comment out the cp in k/a/x/Makefile (but don\u0027t commit it).\n\nWith this change, you can do things such as:\n\n$ x86_64-ros-addr2line -e obj/kern/akaros-kernel-64b\nffffffffc0321cef\n/usr/local/google/home/brho/akaros/ros-kernel/kern/src/process.c:551\n^C\n\n$ gdb obj/kern/akaros-kernel-64b\nReading symbols\nfrom akaros-kernel-64b...done.\n(gdb) list *0xffffffffc200d030\n0xffffffffc200d030 is in abort_all_sysc (kern/src/kthread.c:739).\n734/* This will abort any abortabls at the time the call was started.  New\n735 * abortables could be registered concurrently.  The main caller I see for this\n736 * is proc_destroy(), so DYING will be set, and new abortables will quickly\n737 * abort and dereg when they see their proc is DYING. */\n738void abort_all_sysc(struct proc *p)\n739{\n740    struct cv_lookup_elm *cle;\n741    int8_t irq_state \u003d 0;\n742    struct cv_lookup_tailq abortall_list;\n743    struct proc *old_proc \u003d switch_to(p);\n(gdb)\n\nNote that you need to call this on the akaros-kernel-64b version (for amd64).\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a8528b9501b812ab2c4b49764ac6050a3253605f",
      "old_mode": 33188,
      "old_path": "Makefile",
      "new_id": "9473ac7e75410788f4ec0c13a96c4da3c0d18ecb",
      "new_mode": 33188,
      "new_path": "Makefile"
    },
    {
      "type": "modify",
      "old_id": "f13738a930e7a1a52e432f2cfa0807fe7ef9d423",
      "old_mode": 33188,
      "old_path": "kern/arch/x86/Makefile",
      "new_id": "fededcd84507be02552d60f30470942377090449",
      "new_mode": 33188,
      "new_path": "kern/arch/x86/Makefile"
    }
  ]
}
