debug linux linux打开软件命令
大家好,关于debug linux很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于linux打开软件命令的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
如何在linux上开启远程debug
tomcat debug参数关键字: debug一般调试一个web项目的java代码时,需要将你的tomcat服务器和你的开发工具(比如Jbuilder)集成,或需要工具的一些插件支持(比如Eclipse下的myclipse等),这些方式都是在本地进行,即你的开发工具和tomcat运行在同一台服务器上,如果你的开发工具和服务器不再一台机器上那就需要实现远程调试功能了。实现方法:在tomcat的catalina.bat文件中加入下面的设置,当然SET CATALINA_OPTS变量应该在使用它之前。这是在tomcat启动时设置一些虚拟机参数,使服务器允许远程连接功能,address=5888表示远程连接的端口号,可以设置成任意其他不冲突端口。其他的应用服务器比如weblogic也应该可以设置这些参数,有兴趣的可以测试。 SET CATALINA_OPTS=-server-Xdebug-Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888这样就Ok了,重启动tomcat,可以直接独立启动,而不用在eclipes的插件中启动。打开eclipse中的debug设置窗口,选择Remote Java Application,新建一个debug项,输入服务器IP和刚才设置端口号,点ok就可以进入debug状态了。
盘点Linux内核debug绝招之一:GDB调试器
本文是"降龙十八掌"系列的第一招——GNU DeBuger(GDB)调试器,适用于Linux系统,以Ubuntu 18.04和gdb v8.1.1为例。本文将深入探讨GDB的底层原理和在Linux内核调试中的应用。
首先,GDB底层实现始于gdbserver的main函数,该函数实际上通过captured_main函数完成初始化,包括解析用户指令、初始化核心服务并启动事件循环。核心服务初始化时,会通过ptrace和调试core文件,确保功能可用。例如,创建子进程,设置追踪状态,以及插入断点等操作都在这个过程中完成。
插入断点的实现涉及gdb的breakpoint.c和infrun.c,通过initialize_breakpoint_ops创建断点,然后调用相应函数,如insert_memory_breakpoint,将断点指令插入目标地址。
此外,文章还分享了如何利用GDB调试实际的内核代码,如在qemu中的arm64 Linux,通过交叉编译和gdb-server实现远程调试。通过模拟异常,如动态加载模块时的越界错误,展示了如何通过GDB一步步追踪到问题所在。
深入学习GDB,可参考官方文档,如sourceware.org/gdb/current/和sourceware.org/gdb/wiki/,以及一些实用的命令集合。最后,文章推荐了其他与Linux内核编程相关的技术资源,供读者进一步探索。
Linuxdebug常用Linux系统Debug命令
Linuxdebug,常用Linux系统Debug命令很多人还不知道,现在让我们一起来看看吧!
常用Linux系统Debug命令
命令系统,是一种计算机代码控制系统。常用Linux系统Debug命令有哪些呢?下面是相关的知识,欢迎阅读。
1、查看TCP连接状态
netstat-nat|awk'{print$6}'|sort|uniq-c|sort-rn
netstat-n| awk'/^tcp/{++S[$NF]};END{for(a in S) print a, S[a]}'
netstat-n| awk'/^tcp/{++state[$NF]}; END{for(key in state) print key,"",state[key]}'
netstat-n| awk'/^tcp/{++arr[$NF]};END{for(k in arr) print k,"",arr[k]}'
netstat-n|awk'/^tcp/{print$NF}'|sort|uniq-c|sort-rn
netstat-ant| awk'{print$NF}'| grep-v'[a-z]'| sort| uniq-c
netstat-nat|awk'{print$6}'|sort|uniq-c|sort-rn
netstat-n| awk'/^tcp/{++S[$NF]};END{for(a in S) print a, S[a]}'
netstat-n| awk'/^tcp/{++state[$NF]}; END{for(key in state) print key,"",state[key]}'
netstat-n| awk'/^tcp/{++arr[$NF]};END{for(k in arr) print k,"",arr[k]}'
netstat-n|awk'/^tcp/{print$NF}'|sort|uniq-c|sort-rn
netstat-ant| awk'{print$NF}'| grep-v'[a-z]'| sort| uniq-c
2、查找请求80端口最多的20个IP连接
netstat-anlp|grep 80|grep tcp|awk'{print$5}'|awk-F:'{print$1}'|sort|uniq-c|sort-nr|head-n20
netstat-ant|awk'/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A,i}'|sort-rn|head-n20
tcpdump-i eth0-tnn dst port 80-c 1000| awk-F"."'{print$1"."$2"."$3"."$4}'| sort| uniq-c| sort-nr|head-n 20
3、查找较多time_wait连接
netstat-n|grep TIME_WAIT|awk'{print$5}'|sort|uniq-c|sort-rn|head-n20
4、找查较多的SYN连接
netstat-an| grep SYN| awk'{print$5}'| awk-F:'{print$1}'| sort| uniq-c| sort-nr| more
5、根据端口列进程
netstat-ntlp| grep 80| awk'{print$7}'| cut-d/-f1
6、获取Web访问前10位的'ip地址
cat access.log|awk'{print$1}'|sort|uniq-c|sort-nr|head-n 10
cat access.log|awk'{counts[$(11)]+=1}; END{for(url in counts) print counts[url], url}'
7、访问次数最多的文件或页面,取前20
cat access.log|awk'{print$11}'|sort|uniq-c|sort-nr|head-n 20
8、列出传输最大的几个rar文件
cat access.log|awk'{print$11}'|sort|uniq-c|sort-nr|head-n 20
9、列出输出大于200000byte(约200kb)的rar文件以及对应文件发生次数
cat access.log|awk'($10> 200000&&$7~/.rar/){print$7}'|sort-n|uniq-c|sort-nr|head-n 100
10、如果日志最后一列记录的是页面文件传输时间,则有列出到客户端最耗时的页面
cat access.log|awk'($7~/.php/){print$NF""$1""$4""$7}'|sort-nr|head-n 100
cat access.log|awk'($7~/.php/){print$NF""$1""$4""$7}'|sort-nr|head-n 100
11、列出最最耗时的页面(超过60秒的)的以及对应页面发生次数
cat access.log|awk'($NF> 60&&$7~/.php/){print$7}'|sort-n|uniq-c|sort-nr|head-n 100
12、列出传输时间超过 30秒的文件
cat access.log|awk'($NF> 30){print$7}'|sort-n|uniq-c|sort-nr|head-n 20
13、统计网站流量(G)
cat access.log|awk'{sum+=$10} END{print sum/1024/1024/1024}'
14、统计404的连接
awk'($9~/404/)' access.log| awk'{print$9,$7}'| sort
15、统计http status
cat access.log|awk'{counts[$(9)]+=1}; END{for(code in counts) print code, counts[code]}'
cat access.log|awk'{print$9}'|sort|uniq-c|sort-rn
16、查看是哪些爬虫在抓取内容
tcpdump-i eth0-l-s 0-w- dst port 80| strings| grep-i user-agent| grep-i-E'bot|crawler|slurp|spider'
17、查看数据库执行的sql语句
tcpdump-i eth0-s 0-l-w- dst port 3306| strings| egrep-i'SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL'
18、按域统计流量
zcat squid_access.log.tar.gz| awk'{print$10,$7}'|awk'BEGIN{FS="[/]"}{trfc[$4]+=$1}END{for(domain in trfc){printf"%s%d",domain,trfc[domain]}}'
19、调试命令
strace-p pid
20、磁盘性能
iostat-x 1 10