建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

System.map文件的作用(解决vue-router路由拦截造成死循环问题介绍)

GG网络技术分享 2025-03-18 16:14 45


System.map文件的作用

有关System.map文件的信息好象很缺乏。其实它一点也不神秘,并且在整个事情当中它并不象看上去那么得重要。但是由于缺乏必要的文档说明,使其显得比较神秘。它就象耳垂,我们每个人都有,但却不知道是干什么用的。本网页就是用来说明这个问题的。

注意,我并不会是百分之一百正确的。例如,一个系统很可能没有/proc文件系统支持,但是大多数系统肯定有。这里我假定你是“随大流的”,并有一个典型配置的系统。

某些有关内核出错(oops)的阐述来自于Alessandro Rubini的“Linux设备驱动程序” 一书,我是从其中学到大部分内核编程知识的。

什么是符号(Symbols)?

内核符号表(Kernel Symbol Table)是什么东西?

什么是System.map文件?

  • /proc/ksyms
  • System.map

什么是一个Oops?

一个Oops与System.map文件有什么关系呢?

  • 静态转换,将使用System.map文件。
  • 动态转换,该方式用于可加载模块,不使用System.map,因此与本讨论没有关系,但我仍然对其加以简单说明。

System.map应该位于什么地方?

  • /boot/System.map
  • /System.map
  • /usr/src/linux/System.map
  • 在2.5.x系列内核的某个版本,Linux内核会开始untar成linux-version,而非只是linux (请举手表决 -- 有多少人一直等待着这样做?)。我不知道klogd是否已经修改为在/usr/src/linux-version/System.map中搜索。TODO:查看klogd源代码。
  • 在线手册上对此也没有完整描述,请看:
  • #strace -f /sbin/klogd | grep \'System.map\'
  • 31208 open(\"/boot/System.map-2.4.18\", O_RDONLY|O_LARGEFILE) = 2
  • 显然,不仅klogd在三个搜索目录中寻找正确版本的map文件,klogd也同样知道寻找名字为 \"System.map\" 后加\"-内核版本\",象 System.map-2.4.18. 这是klogd未公开的特性。

还有谁使用了System.map?

如果我没有一个好的System.map,会发生什么问题?

我如何对上述情况进行补救?

  • /boot/vmlinuz-2.2.14
  • /boot/vmlinuz-2.2.13
  • /boot/vmlinuz-2.2.14
  • /boot/vmlinuz-2.2.14.nosound
  • /boot/System.map-2.2.14
  • /usr/src/linux/System.map (对于nosound版本)

解决vue-router路由拦截造成死循环问题介绍

这篇文章主要介绍了解决vue-router路由拦截造成死循环问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

笔记:vue-router路由拦截造成死循环,在做路由拦截的时候,一直出现死循环.

const router = new Router({

routes: [{path: \'/login\',name: \'login\',component: Login,meta: {isShow: true}},

{path: \'/\',component: Layout,redirect: \'/home\',meta: {title: \"首页菜单\"},

children: [{ path: \'home\', name: \'home\', component: () => import(\'@/views/Hmoe\'),

meta: { title: \"首页\" } }],}]

})

一开始路由拦截是这样写的,但是这样的结果就是,在token存在的时候,可以直接访问login页面,但是实际项目中是,在token存在的时候不能可以访问login页面

router.beforeEach((to, from, next) => {

if (!to.meta.isShow && !sessionStorage.getItem(\"token\")) {

return next(\'/login\');

}

next();

})

根据项目的需求进行修改,然后就出现下图的报错,出现了死循环

router.beforeEach((to, from, next) => {

if (sessionStorage.getItem(\"token\")) {

if (to.meta.isShow) {

next(\'/home\')

} else {

next()

}

} else {

next(\'/login\');

}

})

//检查代码

router.beforeEach((to, from, next) => {

if (sessionStorage.getItem(\"token\")) {

if (to.meta.isShow) {

console.log(\"1\")

next(\'/home\')

} else {

console.log(\"2\")

next()

}

} else {

console.log(\"3\")

next(\'/login\');

}

})

标签:

提交需求或反馈

Demand feedback