建议按如下步骤 *** 作:
1、使用USB数据线将手机与电脑连接。
2、 在电脑上,打开360安全卫士,找到360手机助手,点击“立即连接”。
3、下载并安装手机版360手机助手。
4、选择‘我的手机’,点击‘管理你的手机预装软件’,就可以准确的查看到自己的手机有多少个自带软件。可以点击右上角的“一键root”,也可以卸载如何一个软件,系统会自动提醒你“root”的,点击确定。
5、获取ROOT权限的时间有点长,大概需要5-10分钟,具体和手机的内存及软件有关。
6、当屏幕显示“恭喜您,已经成功获取root权限!”字样,就说明完工了,再点击“完成”就可以了。
7、现在手机已经成功获取root权限,可以点击‘我的手机’,再点击“管理预装软件“进行卸载了。值得注意的是,并不是所有的软件都可以删,有些如日历、计算机、天气等必备软件删除了,手机可能就要刷机了,ROOT是回不去的,要慎重选择要删除的软件。
开发和使用Unix程序时, 有时程序莫名其妙的down了, 却没有任何的提示(有时候会提示core dumped) 这时候可以查看一下有没有形如core进程号的文件生成, 这个文件便是 *** 作系统把程序down掉时的内存内容扔出来生成的, 它可以做为调试程序的参考core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由 *** 作系统把程序当前的内存状况存储在一个core文件中, 叫core dumpgdb -c core文件路径 [应用程序的路径]进去后输入where回车, 就可以显示程序在哪一行当掉的, 在哪个函数中有时候程序down了, 但是core文件却没有生成 core文件的生成跟你当前系统的环境设置有关系, 可以用下面的语句设置一下, 然后再运行程序便成生成core文件core文件生成的位置一般于运行程序的路径相同, 文件名一般为core进程号
用Jsp获取、用Java类获取或用servlet获取项目绝对路径。
一、用Jsp获取
1、获取文件的绝对路径
String file="文件";(例如:datamdb)
String path=applicationgetRealPath(file);
2、获取文件的绝对路径
String p2=requestgetRequestURI();
3、获取当前jsp页面的路径
String p3=requestgetContextPath();
4、获取当前项目的路径
String p4=requestgetServletPath();
二、用Java类获取
1、获取Eclipse路径
String a1=SystemgetProperty("userdir");
2、获取当前的classpath路径
String a2=类名classgetResource("")toString();
String a3=DBConnectionclassgetResource("/")toString();
String a4=DBConnectionclassgetClassLoader()getResource("")toString();
String t=ThreadcurrentThread()getContextClassLoader()getResource("")getPath();
3、获取文件的绝对路径
如果要获取WebContent目录下的文件绝对路径怎么办?可以用下面的方法
String t=ThreadcurrentThread()getContextClassLoader()getResource("")getPath();
int num=tindexOf("metadata");
String path=tsubstring(1,num)replace('/', '\\')+"项目名\\WebContent\\文件";
三、用servlet获取
1、获取项目的绝对路径
requestgetSession()getServletContext()getRealPath("")
2、获取浏览器地址
requestgetRequestURL()
3、获取当前文件的绝对路径
requestgetSession()getServletContext()getRealPath(requestgetRequestURI())
用servlet获取
1、获取项目的绝对路径
requestgetSession()getServletContext()getRealPath("")
结果:
E:\java_web\workspace\metadata\plugins\orgeclipsewstservercore\tmp0\wtpwebapps\myWebsite
2、获取浏览器地址
requestgetRequestURL()
结果:
>
1、先用#ulimit -a可以查看系统core文件的大小限制(第一行),core文件大小设置为0, 即没有打开core dump设置;
[cpp] view plain copy print
root@XZX:~/cnnic/project/dnsx/dnsX# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 46621
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 46621
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
root@XZX:~/cnnic/project/dnsx/dnsX# ulimit -acore file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 46621
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 46621
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
2、接下来使用#ulimit -c [kbytes]可以设置系统允许生成的core文件大小;
ulimit -c 0 不产生core文件
ulimit -c 100 设置core文件最大为100k
ulimit -c unlimited 不限制core文件大小
执行#ulimit -c unlimited,然后#ulimit -a查看结果如下(第一行):
[cpp] view plain copy print
root@XZX:~/cnnic/project/dnsx/dnsX# ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 46621
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 46621
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
root@XZX:~/cnnic/project/dnsx/dnsX# ulimit -acore file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 46621
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 46621
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
此时,core dump设置打开了,再执行程序出现段错误时,在当前工作目录下产生了core文件,然后我们就可以用gdb调试core文件了。
例如:
#gdb /test core2065
注:Linux下的C程序常常会因为内存访问错误等原因造成segment fault(段错误),此时如果系统core dump功能是打开的,那么将会有内存映像转储到硬盘上来,之后可以用gdb对core文件进行分析,还原系统发生段错误时刻的堆栈情况。这对于我们发现程序bug很有帮助。
很多系统默认的core文件大小都是0,我们可以通过在shell的启动脚本/etc/bashrc或者~/bashrc等地方来加入 ulimit -c 命令来指定core文件大小,从而确保core文件能够生成。
除此之外,还可以在/proc/sys/kernel/core_pattern里设置core文件的文件名模板,详情请看core的官方man手册。
需要说明的是:上述方法只是在当前shell中生效,重启之后,就不再有效了。永久生效的办法是如下:
永久生效办法:
#vi /etc/profile 然后,在profile中添加:
ulimit -c 1073741824
(但是,若将产生的转储文件大小大于该数字时,将不会产生转储文件)
或者
ulimit -c unlimited
这样重启机器后生效了。 或者, 使用source命令使之马上生效。
#source /etc/profile
三、指定内核转储的文件名和目录
修改完内核转储设置后,当程序core dump后发现确实在本地目录产生了core文件,但是如果程序多次core dump时,core文件会被覆盖,原因是每次core dump后生成的文件名默认都叫core,接下来就分享下如果想在每次core dum时产生的core文件都带上进程号怎么 *** 作,或者你想把内核转储文件保存到其他目录怎么办?
1、core dump文件名自动加上进程ID
#echo 1 > /proc/sys/kernel/core_uses_pid
最后生成的core dump文件名会加上进程ID
2、另外可以通过修改kernel的参数,指定内核转储所生成的core文件的路径和文件名。
可以通过在/etc/sysctlconf文件中,对sysctl变量kernelcore_pattern的设置。
#vim /etc/sysctlconf 然后,在sysctlconf文件中添加下面两句话:
kernelcore_pattern = /var/core/core_%e_%p
kernelcore_uses_pid = 0
保存后退出。
注:如果/proc/sys/kernel/core_uses_pid 这个文件的内容被配置成1,即使core_pattern中没有设置%p,最后生成的core dump文件名仍会加上进程ID。
这里%e, %p分别表示:
%c 转储文件的大小上限
%e 所dump的文件名
%g 所dump的进程的实际组ID
%h 主机名
%p 所dump的进程PID
%s 导致本次coredump的信号
%t 转储时刻(由1970年1月1日起计的秒数)
%u 所dump进程的实际用户ID
可以使用以下命令,使修改结果马上生效。
#sysctl –p /etc/sysctlconf
请在/var目录下先建立core文件夹,然后执行aout程序,就会在/var/core/下产生以指定格式命名的内核转储文件。查看转储文件的情况:
#ls /var/core
core_aout_2456
以上就是关于coredump生成路径的设置如何对非root用户(不同shell)生效全部的内容,包括:coredump生成路径的设置如何对非root用户(不同shell)生效、什么是Core Dump怎么使用、D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)