linux命令行调试代码 linux命令行编程

如何调试Linux shell脚本

最简单的调试命令当然是使用echo命令。您可以使用echo在任何怀疑出错的地方打印任何变量值。这也是绝大多数的shell程序员要花费80%的时间来调试程序的原因。Shell程序的好处在于不需要重新编译,插入一个echo命令也不需要多少时间。

创新互联于2013年成立,是专业互联网技术服务公司,拥有项目成都网站设计、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元大渡口做网站,已为上家服务,为大渡口各地企业和个人服务,联系电话:13518219792

shell也有一个真实的调试模式。如果在脚本"strangescript" 中有错误,您可以这样来进行调试:

sh -x strangescript

这将执行该脚本并显示所有变量的值。

shell还有一个不需要执行脚本只是检查语法的模式。可以这样使用:

sh -n your_script

这将返回所有语法错误。

linux/unix shell l脚本调试方法

Shell提供了一些用于调试脚本的选项,如下所示:

-n

读一遍脚本中的命令但不执行,用于检查脚本中的语法错误

-v

一边执行脚本,一边将执行过的脚本命令打印到标准错误输出

-x

提供跟踪执行信息,将执行的每一条命令和结果依次打印出来

使用这些选项有三种方法,一是在命令行提供参数

$ sh -x ./script.sh二是在脚本开头提供参数

#! /bin/sh -x第三种方法是在脚本中用set命令启用或禁用参数

#! /bin/sh

if [ -z "$1" ]; then

set -x

echo "ERROR: Insufficient Args."

exit 1

set +x

fiset -x和set +x分别表示启用和禁用-x参数,这样可以只对脚本中的某一段进行跟踪调试。

linux入门基础(四)Gdb调试程序

Gdb调试

注意:在Gcc编译选项中一定要加入

–g

退出GDB:quit

Ctrl+d

调试过程:

1.

查看文件

命令:

(gdb)

l

命令:(gdb)

b

行号

注:到第17行停止,并没有执行17行

3.

查看断点情况

info

b

4.

运行代码

r

命令:

(gdb)

r

(也可以指定行开始运行,在r后面加上行号)

5.

查看变量值

p

命令:(gdb)

p

变量名

6.

设置监视点:

watch

z

(变量名)

也可以是复杂的表达式

7.

单步运行

命令:(gdb)

n

(逐过程)

8.逐步,会进入函数

命令:(gdb)

s

9.条件断点

将正常断点转变为条件断点:condition

如:condition

1

i

==

10

只有当满足条件i

==

1时,才会在断点1处暂停

10.

恢复程序运行

c

命令:

(gdb)

c

(程序就会运行,如果没有断点,就运行剩下部分,如果有断点,就会运行到下一个断点)

11.

去除断点

clear

line_number

clear

filename:line_number

12.

help

12.1

help找出类别

12.2help从列表中

linux线上程序问题调试命令

根据这些可以查看系统调用的完整性,比如说服务器连接数一直涨,说明fd没有close,close调用在上边有缺失

strace -t -T -v -f -p 16705 -Te write 只看write系统调用

sudo gcore xxpid 生成dump文件

sudo dlv core binfile core.xxxx 调试coredump文件,查看调用栈、goroutines

查看系统级别日志 /var/log/messages

messages 日志是核心系统日志文件。它包含了系统启动时的引导消息,以及系统运行时的其他状态消息。IO 错误、网络错误和其他系统错误都会记录到这个文件中。其他信息,比如某个人的身份切换为 root,也在这里列出。如果服务正在运行,比如 DHCP 服务器,您可以在 messages 文件中观察它的活动。通常,/var/log/messages 是您在做故障诊断时首先要查看的文件。

tcpdump -i lo -nnA 'port 7076' and 'tcp[13] 4 != 0 ' 抓rst包,发送给7076端口或者是7076端口发出去的

mac osx系统:sudo tcpdump -i lo0 -nnA 'port 3000'

如何在linux命令行高效的编写调试Matlab程序

只需要在linux的命令行下执行: matlab -nodesktop -nosplash -r “你的程序的名字” (前提是matlab所在的目录在你的PATH变量包含的目录中)


本文名称:linux命令行调试代码 linux命令行编程
标题路径:http://azwzsj.com/article/hhhpjp.html