在Remix环境下进行单步调试

转载自:Remix单步调试方法

一:新建合约

pragma solidity ^0.4.0;
contract Donation {
    address owner;
    event fundMoved(address _to, uint _amount);
    modifier onlyowner { if (msg.sender == owner) _; }
    address[] _giver;
    uint[] _values;

    function Donation() {
        owner = msg.sender;
    }

    function donate() payable {
        addGiver(msg.value);
    }

    function moveFund(address _to, uint _amount) onlyowner {
        uint balance = this.balance;
        uint amount = _amount;
        if (_amount <= this.balance) {
            if (_to.send(_amount)) {
                fundMoved(_to, _amount);
            } else {
                throw;
            }
        } else {
            throw;
        }
    }

    function addGiver(uint _amount) internal {
        _giver.push(msg.sender);
        _values.push(_amount);
    }
}

将代码输入进Remix-Solidity IDE
首先我们把setting环境设置为0.4.0版本 然后开始进入编译准备工作:

点击Details我们可以看到交易详情:
在Remix环境下进行单步调试_第1张图片
第二步点击Debugger进入调试
在Remix环境下进行单步调试_第2张图片
我们可以看到右侧有调试框
从上往下了解所有含义
在Remix环境下进行单步调试_第3张图片
在Remix环境下进行单步调试_第4张图片
1 step over back 退后一步
2 step back 退后
3 step into进入
4,step over forward向前进一步
5,jump to the previous breakpoint跳到上一个断点
6,jump out 跳出
7 jump to the next breakpoint跳到下一个断点

三设置定点调试

在需要定点调试的某一行双击即可,在Run面板的moveFund输入框内输入参数,给第二个账号转移0.0005个ETH。点击”MoveFund”执行该交易函数。
添加完毕后点击终端输出器中的Debug按钮,点击调试面板的“Jump to the next breakpoint”程序会运行到第一个断点处。

你可能感兴趣的:(区块链)