私はPythonアプリケーションをリバースエンジニアリングしています。これにより、アプリケーション内でコードを動的にインストルメント化することにより、動作を観察します。問題は、正しいレベルのインデントでコードを挿入する必要があることです。
たとえば、私がインストルメント化するコードのフラグメントを考えてみましょう。
class A:
def move(self,name):
name=self.name
print name
def move1(self):
print 'dude'
上記のサンプルコードでは、エントリと終了のログを計測します。計測されたコードは次のようになります。
enter code class A:
def move(self,name):
print 'Entry move class='A''
name=self.name
print name
Print'Exit move class='A''
def move1(self):
print 'Entry move1 class='A''
print 'dude'
print 'Exit move class='A''
これは、代わりにコードをインストルメントするときに必要なもので、次のようになります。
enter code class A:
def move(self,name):
print 'Entry move class='A''
name=self.name
print name
print'Exit move class='A''
def move1(self):
print 'Entry move1 class='A''
print 'dude'
print'Exit move1 class='A''
私はスクリプトを書いているので、それは次の行に挿入され、Pythonコードのインデント形式を知りません。
とにかく、挿入中にインデントを自動的に調整できるか、次の行の文字のインデックスを知って、文字列にスペースを挿入してから挿入する必要がありますか?