• NDK GDB 中打印vector , vector<vector <> >


    在android上进行native开发的时候,我们需要用NDK-GDB 对native code进行调试,其中很麻烦的是,我使用的NDK版本是4.0,该版本还不支持用NDK-GDB直接打印vector的值。举个例子:

    vector<int> lvUnits(3);

    在NDK-GDB中,如果你直接使用p lvUnits[0],那么NDK-GDB会提示你内存非法访问。这就是NDK-GDB的变态之处,他还不能很好的支持STL, 不知道最新的NDK8是否支持.  所以你如果要打印lvUnits的值该怎么办呢?

    使用如下命令:

    print *(lvUnits._M_impl._M_start)@3

    这样就可以输出整个vector的value了。如果只想输出第2个的值怎么办? print *(lvUnits._M_impl._M_start+1)


    接下去更难一点的, vector<vector<int> > lvvIndex; 要输出第i个vector的value怎么办?

    print *((lvvIndex._M_impl._M_start +i )->_M_impl._M_start )@(sizeof vector i)

    其中lvvIndex._M_impl._M_start +i 是指向第i个vector的指针

  • 相关阅读:
    CSS书写规范参考
    CSS实现垂直居中的5种方法
    HTML5新标签
    sublime win10下中文输入框自动跟随解决
    变量更改值
    查看文件
    list copy
    Tomcat JAR包冲突报错
    第一周单元3:Requests库网络爬虫实例-查询ip地址
    .strip()的喵用!
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3226010.html
Copyright © 2020-2023  润新知