[SDN | Pycharm]_利用Pycharm來Debug SDN Ryu Controller

從接觸SDN,一直以來Debug大多都是看code trace或用print印印封包內容,了不起用pdb+IDLE做陽春版的debug

 

但其實都是很沒有效率的(看向Visual Studio那噁心的Debugger)

最近論文所需,開始要寫比較大的Controller模組,於是找了一下並沒有明顯的文章提及如何針對ryu controller debug,

 

但仔細觀察,發現解答細節其實藏在mailing list中…

 

有經驗的可以直接看下面的解法:

https://www.mail-archive.com/ryu-devel%40lists.sourceforge.net/msg08519.html

 

其實就是透過一個python程式去帶起ryu manager與其要執行的模組,就像打指令一樣

例如使用pycharm建立一個project,並隨便建立一個python程式,內容如下,而其中your.application.module改成你自己的ryu-app python file:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys

from ryu.cmd import manager


def main():
    sys.argv.append('your.application.module')
    sys.argv.append('--verbose')
    sys.argv.append('--enable-debugger')
    manager.main()

if __name__ == '__main__':
    main()

 

然後下好中斷點後執行(執行時下也可以啦…)

 

只要你帶起ryu-manager的程式有給對要debug的ryu app module name,就可以直接透過pycharm做ryu app module的debug了!

1

 

中斷點,逐步執行完全可以用,直接由pycharm控制ryu controller的執行

2

 

這樣子一來對ryu controller debug就更方便容易啦~

以上~

 

1 Comment

  1. 您好,我试了与喜爱。
    我的Pycharm提示
    “error: unrecognized arguments: -enable-debugger”
    请问您知道是怎么回事嘛?

1 Trackback / Pingback

  1. [SDN | Pycharm]_利用Pycharm來"Remote" Debug SDN Ryu Controller - NTL-Network

Leave a comment

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料