openwrt 学习常用命令及备注( 五 )


rwatch // 设置读观察点,读到表达式的值时,程序停止执行
awatch // 设置访问观察点,当表达式读或写时,将停止执行程序
info watchpoints // 列出当前设置的所有观察点
捕获点管理:
使用捕获点调试某些程序事件,如C++异常、共享库的加载、系统调用、进程启动等...
当事件发生时,程序会停止执行 。
throw // 一个C++抛出的异常
exec // 当程序执行exec函数创建进程时
syscall // 参数为不火系统调用他们的名字或编号
load // 加载共享库时
fork // 当程序调用fork创建进程时
tcatch // 设置临时捕获点
单步调试:
continue // continue [ignore-count] 从断点停止的地方恢复程序执行,可缩写为c,ignore-count表示忽略这个位置断点的次数
step // 继续执行程序知道控制到达不同的源码行,可进入函数,可缩写为s
next // 单步跟踪,继续执行同一函数的下一行代码,不会进入函数,可缩写为n
finish // 继续运行程序直到当前选择的栈帧返回,并输出返回值,可缩写为fin
until // 执行程序直到大于当前已经执行的代码行,在程序循环时经常会用到,即循环体如果执行过一次,使用until命令将执行循环体完成后的下一行代码处停止
查看程序运行栈帧信息:
backtrace [full]/[number] // 输出当前整个函数调用栈的信息,整个栈每个帧一行显示 。
frame // 为选择和输出栈帧
up // 选择和输出栈帧
down // 不带参数表示选择向下一层栈帧
return // 返回到当前栈帧的调用处
info frame // 显示栈帧的所有信息
查看运行中的源程序信息:
list // 如果没有参数,默认输出当前10行代码或者紧接着上次的代码 。
list - // 输出当前位置之前的10行代码
查看运行时数据:
print // 输出执行程序时的运行数据,可缩写为p,例如:p num
x // 输出指定参数的地址信息 - 16进制,例如:x /FMT address
d // 10进制
u // 16进制,无符号整型
o // 8进制
t // 2进制
a // 16进制
c // 字符格式
f // 浮点数格式
$pc // 程序计数器
$fp // 栈指针
$sp // 栈指针
$ps // 处理器状态
动态改变程序的执行:
print argc=2 // 修改变量的值
set // 修改程序值
jump // 跳转到指定行或地址来继续执行
signal // 向程序发信号
call // 调用函数,不输出函数返回值
【网络基础知识】
OSI互联网协议层分为7层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
TCP/IP协议层次分为4层:应用层、传输层、网络层、数据链路层
网络设备:
集线器:HUB,在物理层上实现局域网的互联,可以实现电气信号的恢复和整型 。
网桥:工作在数据链路层,网桥负责分析目的mac地址字段是否在对方网络上 。
路由器:Router,网络层设备,用于将两个或多个不同网络连接在一起 。
防火墙:Firewall,是在两个或多个网络之间用于设置安全策略的一个或多个系统的组合 。
数据链路层:
以太网:目前最流行的局域网传输标准 。
MAC地址:网卡物理地址,长度为6个字节,表示为12个十六进制的数字 。例如:08:00:27:26:c5:5d
广播域:发送到网络中所有节点的数据分组 。网桥和交换机根据MAC地址转发数据帧,不隔离广播域 。路由器不会转发广播报文,为广播域的边界 。
ARP协议:根据主机的IP地址来查询其网卡MAC地址,即通过目标IP知道对方的MAC地址 。
IP协议:
网络协议层主要包括两部分:IP和ICMP 。
IP协议是不可靠的、无连接的网络协议,可靠性需要上层协议来保证 。
IP协议报文格式可以百度查看 。
IP地址分类:
ipv4("4个字节的32位地址")
ipv6 ("16个字节的128位地址")
ip地址包括两部分内容,"网络号和主机号" 。
"A类":0~127 . 0~255 . 0~255 . 0~255 以0为首的8位网络地址+24位本地地址
0.0.0.0 "主机号全0不能使用 ",主机号全0代表的是网络号 。
0.255.255.255 "主机号全1不能用 ",这代表的是该网络的广播地址 。
127.0.0.0 127.255.255.255
"B类":128~191 . 0~255 . 0~255 . 0~255 以10为首的16位网络地址+16位本地
"C类":192~223 . 0~255 . 0~255 . 0~255 以110为首的24位网络地址+8位本地
"D类":以 1110 为首的32位多播地址(28位多播组号)
"E类":以 11110 为首的32位多播地址(27位留后待用)


推荐阅读