Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/taskdump/taskdump.c

    r79ae36dd r6a343bdf  
    5454#define LINE_BYTES 16
    5555
    56 static async_sess_t *sess;
     56static int phoneid;
    5757static task_id_t task_id;
    5858static bool write_core_file;
     
    104104                printf("Failed dumping address space areas.\n");
    105105
    106         udebug_end(sess);
    107         async_hangup(sess);
     106        udebug_end(phoneid);
     107        async_hangup(phoneid);
    108108
    109109        return 0;
     
    112112static int connect_task(task_id_t task_id)
    113113{
    114         async_sess_t *ksess = async_connect_kbox(task_id);
    115        
    116         if (!ksess) {
    117                 if (errno == ENOTSUP) {
    118                         printf("You do not have userspace debugging support "
    119                             "compiled in the kernel.\n");
    120                         printf("Compile kernel with 'Support for userspace debuggers' "
    121                             "(CONFIG_UDEBUG) enabled.\n");
    122                         return errno;
    123                 }
    124                
     114        int rc;
     115
     116        rc = async_connect_kbox(task_id);
     117
     118        if (rc == ENOTSUP) {
     119                printf("You do not have userspace debugging support "
     120                    "compiled in the kernel.\n");
     121                printf("Compile kernel with 'Support for userspace debuggers' "
     122                    "(CONFIG_UDEBUG) enabled.\n");
     123                return rc;
     124        }
     125
     126        if (rc < 0) {
    125127                printf("Error connecting\n");
    126                 printf("async_connect_kbox(%" PRIu64 ") -> %d ", task_id, errno);
    127                 return errno;
    128         }
    129        
    130         int rc = udebug_begin(ksess);
     128                printf("async_connect_kbox(%" PRIu64 ") -> %d ", task_id, rc);
     129                return rc;
     130        }
     131
     132        phoneid = rc;
     133
     134        rc = udebug_begin(phoneid);
    131135        if (rc < 0) {
    132136                printf("udebug_begin() -> %d\n", rc);
    133137                return rc;
    134138        }
    135        
    136         sess = ksess;
     139
    137140        return 0;
    138141}
     
    210213
    211214        /* TODO: See why NULL does not work. */
    212         rc = udebug_thread_read(sess, &dummy_buf, 0, &copied, &needed);
     215        rc = udebug_thread_read(phoneid, &dummy_buf, 0, &copied, &needed);
    213216        if (rc < 0) {
    214217                printf("udebug_thread_read() -> %d\n", rc);
     
    224227        thash_buf = malloc(buf_size);
    225228
    226         rc = udebug_thread_read(sess, thash_buf, buf_size, &copied, &needed);
     229        rc = udebug_thread_read(phoneid, thash_buf, buf_size, &copied, &needed);
    227230        if (rc < 0) {
    228231                printf("udebug_thread_read() -> %d\n", rc);
     
    259262        int rc;
    260263
    261         rc = udebug_areas_read(sess, &dummy_buf, 0, &copied, &needed);
     264        rc = udebug_areas_read(phoneid, &dummy_buf, 0, &copied, &needed);
    262265        if (rc < 0) {
    263266                printf("udebug_areas_read() -> %d\n", rc);
     
    268271        ainfo_buf = malloc(buf_size);
    269272
    270         rc = udebug_areas_read(sess, ainfo_buf, buf_size, &copied, &needed);
     273        rc = udebug_areas_read(phoneid, ainfo_buf, buf_size, &copied, &needed);
    271274        if (rc < 0) {
    272275                printf("udebug_areas_read() -> %d\n", rc);
     
    293296        if (write_core_file) {
    294297                printf("Writing core file '%s'\n", core_file_name);
    295                 rc = elf_core_save(core_file_name, ainfo_buf, n_areas, sess);
     298                rc = elf_core_save(core_file_name, ainfo_buf, n_areas, phoneid);
    296299                if (rc != EOK) {
    297300                        printf("Failed writing core file.\n");
     
    313316        int rc;
    314317
    315         rc = udebug_regs_read(sess, thash, &istate);
     318        rc = udebug_regs_read(phoneid, thash, &istate);
    316319        if (rc < 0) {
    317320                printf("Failed reading registers (%d).\n", rc);
     
    356359        (void) arg;
    357360
    358         rc = udebug_mem_read(sess, &data, addr, sizeof(data));
     361        rc = udebug_mem_read(phoneid, &data, addr, sizeof(data));
    359362        if (rc < 0) {
    360363                printf("Warning: udebug_mem_read() failed.\n");
     
    427430        int rc;
    428431
    429         rc = udebug_name_read(sess, &dummy_buf, 0, &copied, &needed);
     432        rc = udebug_name_read(phoneid, &dummy_buf, 0, &copied, &needed);
    430433        if (rc < 0)
    431434                return NULL;
     
    433436        name_size = needed;
    434437        name = malloc(name_size + 1);
    435         rc = udebug_name_read(sess, name, name_size, &copied, &needed);
     438        rc = udebug_name_read(phoneid, name, name_size, &copied, &needed);
    436439        if (rc < 0) {
    437440                free(name);
Note: See TracChangeset for help on using the changeset viewer.