- 启动(重启要删除data目录)
在/opt/onos/apache-karaf-3.0.8/bin执行
/opt/onos/apache-karaf-3.0.8/bin# ./karaf
-
退出
ctrl+d -
显示日志
onos> log:tail
- 显示所有bundle
onos> la
idea远程调试
https://karaf.apache.org/manual/latest-3.0.x/#_debugging
https://wiki.onosproject.org/display/ONOS/Debugging+ONOS+with+IntelliJ+IDEA
https://www.sdnlab.com/15197.html
- 启动karaf 调试
root@vpp3:/opt/onos/apache-karaf-3.0.8/bin# ./karaf debug
启动后karaf控制台会提示 5005端口被监听
- idea配置远程debug JVM,打断点,启动dubug
- 启动mininet
# 清除
sudo mn -c
# 如果不通,在启动时加protocols=OpenFlow13参数
sudo mn --topo tree,2,3 --mac --switch ovsk,protocols=OpenFlow13 --controller=remote,ip=127.0.0.1
- 以one-ping app为例。在onos-app-samples项目中,按2的步骤设置好,并启动调试,调试控制台显示
Connected to the target VM, address: '192.168.164.137:5005', transport: 'socket'
mininet中执行两次ping
mininet> h1 ping h2 -c 2
idea自动进入调试界面
第一排按钮
Step Over (F8):执行下一行,步过,一行一行地往下走,如果这一行上有方法不会进入方法。
Step Into (F7):进入方法,步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法,如第25行的put方法。
Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
Step Out (Shift + F8):退出到方法调用处,步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
Drop Frame (默认无):回退断点,后面章节详细说明。
Run to Cursor (Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
第二个按钮
Resume Program (F9):运行到下一个断点,恢复程序,比如,你在第20行和25行有两个断点,当前运行至第20行,按F9,则运行到下一个断点(即第25行),再按F9,则运行完整个流程,因为后面已经没有断点了。
点 1 展开所有断点
2.断电右键可以设置Condition,为boolean
3.设置是否输出到控制台
4.Pass count:用于循环中,如果断点在循环中,可以设置该值,循环多少次后停在断点处,之后的每个循环停在断点出。
详细的调试方法请参考
https://blog.csdn.net/yxl_1207/article/details/80973622