2018年10月17日水曜日

パイソンのデバッグ テクニック2


今回は、プログラムのどこを流れたかを確認する関数を作成しました。
プログラムの流れをトレースするのに便利な関数です


print文により、ソースファイル名、関数名、行番号が表示されます。
以下の変数に格納されます。

fileNm  ソースファイル名
funcNm  関数名
lineNo    行番号


表示フォーマットは、自分の好きなようにカスタマイズしてくださいね!
現在は、こんな感じです。

test.py main:15
test.py func:12




🔸トレースに便利な関数

def dbg():

  frame = inspect.currentframe().f_back

  fileNm = os.path.basename(frame.f_code.co_filename)
  funcNm = frame.f_code.co_name
  lineNo = frame.f_lineno

  print( fileNm, "%s:%s" %(funcNm, lineNo) )





🔸ソース全体  ( test.py )
こちらをコピペすれば動作が確認できると思います。


import inspect
import os

def dbg():
  frame = inspect.currentframe().f_back
  fileNm = os.path.basename(frame.f_code.co_filename)
  funcNm = frame.f_code.co_name
  lineNo = frame.f_lineno

  print( fileNm, "%s:%s" %(funcNm, lineNo) )

def func():
  dbg()

def main():
  dbg()
  func()


main()



以下のリンク先のNpdbですぐに確認しよう!
----------------------------------------------------------------------------------
誰でも簡単に使える、 クラウド パイソンデバッカー (IDE/編集可能)
 Npdb

リンク先は、  http://simple-and-useful.net/index-j.html
----------------------------------------------------------------------------------