工作小结 23.04.20
1. 从const unordered_map读取对象
对于常量 unordered_map
,无法使用 operator[]
来读取其中的值。
原因也很简单,对于map
而言,如果 operator[]
操作的key不存在,将会键入默认值。所以 operator[]
是非 const
的,显然无法操作常量对象。
我们可以使用 at()
去获取值,缺点是当要查找的值不在映射中时,会引发 std::out_of_range
异常。因此,可以使用如下方式:
const unordered_map umap;
if (umap.find(key) != umap.end()) {
int value = umap.at(key);
}
参考:c++ - reading object from const unordered_map - Stack Overflow
2. disassemble
gdb下可以使用 disassemble/disass
命令进行反汇编,用法如下:
// 指定函数,输出整个函数的汇编指令
disassemble [Function]
// 指定地址,输出包含给定地址整个函数的汇编指令
disassemble [Address]
// 指定起始地址和结束地址,输出地址之间的指令
disassemble [Start],[End]
// 指定从给定地址或函数开始反汇编的字节数
disassemble [Function],+[Length]
disassemble [Address],+[Length]
// 反汇编命令将显示与反汇编指令相对应的源代码
disassemble /m [...]
// 反汇编命令将显示所有反汇编指令的原始字节值
disassemble /r [...]
参考:GDB Command Reference - disassemble command
GitHub Blog 同步更新
共有 0 条评论