玩了一次linux的crash工具。真TMD牛逼!!!!

源码位置:http://people.redhat.com/anderson/


1.将dump文件合一: cat sysdump.core.* > dump.bin
2.到vendor/xxxx/open-source/tools/sysdump目录下找到crash命令
3.下载编译版本的符号表
4.  ./crash -m phys_base=0x80000000 dump.bin vmlinux
 在crash命令行下输入“log” 命令显示log,查看是否有堆栈打印出。


crash> 
crash> 
crash> 
crash> p sprdbl
sprdbl = $16 = {
  pwm_mode = dim_pwm, 
  pwm_index = 0, 
  bldev = 0xdf6b5000, 
  suspend = 0, 
  clk = 0x0, 
  sprd_early_suspend_desc = {
    link = {
      next = 0xde96115c, 
      prev = 0xc075fb14
    }, 
    level = 50, 
    suspend = 0xc0206af4 <sprd_backlight_earlysuspend>, 
    resume = 0xc0206cf8 <sprd_backlight_lateresume>
  }
}



crash> struct backlight_device 0xdf6b5000
struct backlight_device {
  props = {
    brightness = 25, 
    max_brightness = 255, 
    power = 0, 
    fb_blank = 0, 
    type = BACKLIGHT_RAW, 
    state = 0
  }, 
  update_lock = {
    count = {
      counter = 1
    }, 
    wait_lock = {
      {
        rlock = {
          raw_lock = {<No data fields>}
        }
      }
    }, 
    wait_list = {
      next = 0xdf6b501c, 
      prev = 0xdf6b501c
    }
  }, 
  ops_lock = {
    count = {
      counter = 1
    }, 
    wait_lock = {
      {
        rlock = {
          raw_lock = {<No data fields>}
        }
      }
    }, 
    wait_list = {
      next = 0xdf6b5028, 
      prev = 0xdf6b5028
    }
  }, 
  ops = 0xc05254c8, 
  fb_notif = {
    notifier_call = 0xc0206a28 <fb_notifier_callback>, 
    next = 0x0, 
    priority = 0
  }, 
  dev = {
    parent = 0xc07583d8, 
    p = 0xdf6b3880, 
    kobj = {
      name = 0xdf6b1f80 "sprd_backlight", 
      entry = {
        next = 0xdf6b520c, 
        prev = 0xdf6b200c
      }, 
      parent = 0xdf6b1fc0, 
      kset = 0xdf429ac0, 
      ktype = 0xc0778a28, 
      sd = 0xdf6b60c0, 
      kref = {
        refcount = {
          counter = 3
        }
      }, 
      state_initialized = 1, 
      state_in_sysfs = 1, 
      state_add_uevent_sent = 1, 
      state_remove_uevent_sent = 0, 
      uevent_suppress = 0
    }, 
    init_name = 0x0, 
    type = 0x0, 
    mutex = {
      count = {
        counter = 1
      }, 
      wait_lock = {
        {
          rlock = {
            raw_lock = {<No data fields>}
          }
        }
      }, 
      wait_list = {
        next = 0xdf6b5078, 
        prev = 0xdf6b5078
      }
    }, 
    bus = 0x0, 
    driver = 0x0, 
    platform_data = 0x0, 
    power = {
      power_state = {
        event = 0
      }, 
      can_wakeup = 0, 
      async_suspend = 0, 
      is_prepared = false, 
      is_suspended = false, 
      ignore_children = false, 
      early_init = true, 
      lock = {
        {
          rlock = {
            raw_lock = {<No data fields>}
          }
        }
      }, 
      entry = {
        next = 0xdf6b5254, 
        prev = 0xdf6b2054
      }, 
      completion = {
        done = 2147483647, 
        wait = {
          lock = {
            {
              rlock = {
                raw_lock = {<No data fields>}
              }
            }
          }, 
          task_list = {
            next = 0xdf6b50a0, 
            prev = 0xdf6b50a0
          }
        }
      }, 
      wakeup = 0x0, 
      wakeup_path = false, 
      syscore = false, 
      suspend_timer = {
        entry = {
          next = 0x0, 
          prev = 0x0
        }, 
        expires = 0, 
        base = 0xc07cf2c0, 
        function = 0xc0249200 <pm_suspend_timer_fn>, 
        data = 3748352064, 
        slack = -1
      }, 
      timer_expires = 0, 
      work = {
        data = {
          counter = -32
        }, 
        entry = {
          next = 0xdf6b50d4, 
          prev = 0xdf6b50d4
        }, 
        func = 0xc024a08c <pm_runtime_work>, 
        callback = 0
      }, 
      wait_queue = {
        lock = {
          {
            rlock = {
              raw_lock = {<No data fields>}
            }
          }
        }, 
        task_list = {
          next = 0xdf6b50e4, 
          prev = 0xdf6b50e4
        }
      }, 
      usage_count = {
        counter = 0
      }, 
      child_count = {
        counter = 0
      }, 
      disable_depth = 1, 
      idle_notification = 0, 
      request_pending = 0, 
      deferred_resume = 0, 
      run_wake = 0, 
      runtime_auto = 1, 
      no_callbacks = 0, 
      irq_safe = 0, 
      use_autosuspend = 0, 
      timer_autosuspends = 0, 
      memalloc_noio = 0, 
      request = RPM_REQ_NONE, 
      runtime_status = RPM_SUSPENDED, 
      runtime_error = 0, 
      autosuspend_delay = 0, 
      last_busy = 0, 
      active_jiffies = 0, 
      suspended_jiffies = 0, 
      accounting_timestamp = 4294937311, 
      subsys_data = 0x0, 
      qos = 0x0
    }, 
    pm_domain = 0x0, 
    dma_mask = 0x0, 
    coherent_dma_mask = 0, 
    dma_parms = 0x0, 
    dma_pools = {
      next = 0xdf6b5134, 
      prev = 0xdf6b5134
    }, 
    dma_mem = 0x0, 
    archdata = {
      dma_ops = 0x0
    }, 
    of_node = 0x0, 
    acpi_node = {<No data fields>}, 
    devt = 0, 
    id = 0, 
    devres_lock = {
      {
        rlock = {
          raw_lock = {<No data fields>}
        }
      }
    }, 
    devres_head = {
      next = 0xdf6b5150, 
      prev = 0xdf6b5150
    }, 
    knode_class = {
      n_klist = 0xdf42cb8c, 
      n_node = {
        next = 0xdf42cb8c, 
        prev = 0xdf42cb8c
      }, 
      n_ref = {
        refcount = {
          counter = 1
        }
      }
    }, 
    class = 0xdf43bdc0, 
    groups = 0x0, 
    release = 0xc02068a0 <bl_device_release>, 
    iommu_group = 0x0
  }

}

crash> 

你可能感兴趣的:(玩了一次linux的crash工具。真TMD牛逼!!!!)