Solidity
使用 go-ethereum evm cmd 調試 solidity 合約
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 網路或私有區塊鏈上部署和測試您的合約,然後再部署到真正的乙太坊區塊鏈上。