NS3 --- ns-3.36.1 --- assert failed. cond="m_current >= delta"


# 错误

[root@ztg ns-3.36.1]# ./ns3 run scratch-paper2-lte-wifi

create nodes
assert failed. cond="m_current >= delta", +20.799092640s 9 file=/opt/ns3/ns-allinone-3.36.1/ns-3.36.1/build/include/ns3/buffer.h, line=865
terminate called without an active exception
Command 'build/scratch/ns3.36.1-scratch-paper2-lte-wifi-debug' died with <Signals.SIGABRT: 6>.

# 解决方法:

gedit ./src/network/model/packet-metadata.cc

    PacketMetadata::ItemIterator::Next (void)
    {
    //ztg
      int delta;

    //ztg
    //          item.current.Prev (m_buffer.GetSize () - (m_offset + smallItem.size));
    //----------------------------------------------------------------------------------------------------
          delta = m_buffer.GetSize () - (m_offset + smallItem.size);
    //          std::cout << "m_buffer.GetSize (): " << m_buffer.GetSize () << " m_offset: " << m_offset << " smallItem.size: " << smallItem.size <<std::endl;
    //          std::cout << "m_buffer.GetSize () - (m_offset + smallItem.size) delta: " << delta <<std::endl;
                            //m_buffer.GetSize (): 102 m_offset: 118 smallItem.size: 4
                            //m_buffer.GetSize () - (m_offset + smallItem.size) delta: 4294967276
          if (delta > 0) item.current.Prev (delta);
          else item.current.Prev (0);
    //----------------------------------------------------------------------------------------------------
    }


gedit build/include/ns3/buffer.h

    void
    Buffer::Iterator::Prev (uint32_t delta)
    {

    //  std::cout << "m_current: " << m_current << " delta: " << delta <<std::endl;
      
      NS_ASSERT (m_current >= delta);
      m_current -= delta;
    }
posted @   张同光  阅读(431)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
历史上的今天:
2021-06-27 attempting to obtain a c/c++ compiler on precise puppy linux
点击右上角即可分享
微信分享提示