Solidity

使用 go-ethereum evm cmd 調試 solidity 合約

  • July 31, 2017

evm使用 go-ethereum命令調試 Solidity 合約是否可行?這樣做需要哪些步驟?

當然。Remix線上 IDE 非常適合這一點。粘貼你的合約程式碼,設置編譯選項和執行環境(JavaScript VM 很好開始)。

部署合約或執行其中一種方法後,會出現一個按鈕:

在此處輸入圖像描述

如果點擊此按鈕,它將帶您進入調試器選項卡,您可以在其中使用提供的按鈕單步執行 EVM 程式碼,因為它是為該事務執行的。將滑鼠懸停在按鈕上以查看其說明。

在此處輸入圖像描述

在您逐步完成時,可以使用各種 EVM 狀態數據:

在此處輸入圖像描述

您可以展開這些選項卡以查看數據。對我來說最有用的部分是查看 (1) 指令(EVM 字節碼執行時),(2) 堆棧,(3) 記憶體,(4) 儲存。但其他資訊有時很有用。這是一個很棒的學習環境。

在左窗格中,瀏覽器突出顯示目前正在執行的 Solidity 程式碼的哪一部分。這不是 100% 可靠或直覺的,但對調試很有幫助。

在此處輸入圖像描述

為了調試你的solidity合約,我強烈建議你使用ethereum IDE(比如Remix)。通常它使您能夠通過編譯(否則編譯器顯示的錯誤不會告訴您任何內容)。

然後,如果您想調試您的功能,我建議您使用truffle框架,使您能夠“測試”您的合約功能。當您在私有區塊鏈(或測試區塊鏈)上部署您的框架時,您可以輕鬆地測試您的功能。

使用松露,您要做的是:

  • 初始化你的項目 ( truffle init)
  • 在 contract/ 中編寫你的合約並在 test/ 中編寫你的合約的測試功能並編譯它truffle compile
  • truffle test然後用命令測試你的契約

我強烈建議您先在 testrpc 網路或私有區塊鏈上部署和測試您的合約,然後再部署到真正的乙太坊區塊鏈上。

引用自:https://ethereum.stackexchange.com/questions/23362