问题描述
我定义了一个全局映射 **codes:**
for (auto item = sourceMap.begin(); item != sourceMap.end(); item++) {
cout << "line: " << item->first<< ",line2number:"<<sourceMap[item->first]<<endl;
}
**outputs:**,line2number:8dminInterface,line2number:30payable{},line2number:14minInterface(){,line2number:24t(addressdataBase)payableonlyOwner,line2number:36dOwner(addressnewAddr)payable,line2number:32ansfer(addressmultisig)payableonlyOwner{
line: msg.value>Limit,line2number:38,line2number:33ransfer(msg.value);,line2number:44ansfer(this.balance);,line2number:41egatecall(bytes4(keccak256("AddToWangDB(address)")),msg.sender);
来记录行号和源行之间的映射。
有问题:
1)当我迭代地图时,如果我先打印src,然后再打印数字,打印就会出现乱码。但是,反过来也是正常的。
**code:**
for (auto item = sourceMap.begin(); item != sourceMap.end(); item++) {
cout << "line2number:"<<sourceMap[item->first] << ",line: " << item->first <<endl;
}
**outputs:**
line2number:32,line: functiontransfer(addressmultisig)payableonlyOwner{
line2number:38,line: msg.value>Limit
line2number:33,line: multisig.transfer(msg.value);
line2number:44,line: newAddr.transfer(this.balance);
line2number:41,line: oracle.delegatecall(bytes4(keccak256("AddToWangDB(address)")),msg.sender);
line2number:27,line: oracle=dataBase;
line2number:7,line: pragmasolidity^0.4.18;
line2number:19,line: require(msg.sender==Owner);
line2number:12,line: uint256publiclimit;
line2number:39,line: {
while (getline(blockText,lllline)){
remove_escapesALL(lllline);
cout<<"number: "<<sourceMap[lllline]<<",new_line: "<<lllline<<endl;
}
2)map 找不到很多键对应的值。
异常输出: ''' number: 0,new_line: oracle.delegatecall(bytes4(keccak256("AddToWangDB(address)")),msg.sender); '''
和正常输出: ''' number: 38,new_line: msg.value>Limit '''
一段对应的代码:
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = {AppConfig.class})
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)