小编Elr*_*ros的帖子

GDB 如何知道可执行文件已重定位到何处?

我知道现代操作系统(例如 Linux)并不总是在最初链接的同一地址执行应用程序。然而,当调试器开始环顾四周时,它需要知道原始链接地址和最终执行地址之间的关系。GDB如何计算偏移量?

澄清:我不是在谈论虚拟内存。也就是说,我(我认为是)对虚拟内存的工作原理有一个合理的理解,并且完全在该地址空间中运行。当我从 ELF 转储符号表时,我的符号位于一个位置,但当我从内存中获取它们的地址时,符号位于另一个位置。

在这种特殊情况下,我有一个字符串,它在链接的可执行文件中的地址为 0x0E984141。在该进程的内存转储中,它位于地址 0x0E3F2781。.rodata 部分中的所有内容至少都已移动了 0x5919C0。它似乎类似于地址空间布局随机化。

gdb relocation

3
推荐指数
1
解决办法
909
查看次数

在脚本中运行时如何让bash输出颜色?

我从这个问题中提取了一个示例来创建以下示例:

#!/bin/bash
export GREEN='\033[0;32m'
export RED='\033[0;31m'
export NC='\033[0m' # No Color
echo "I ${RED}love${NC} ${GREEN}Stack Overflow${NC}"
Run Code Online (Sandbox Code Playgroud)

如果我提供文件,它会按预期工作。但是,将其作为可执行文件运行会导致将控制代码打印到屏幕上,而不是更改颜色。我想我需要向 bash 发送一些标志以启用颜色,但是什么?

bash colors

2
推荐指数
1
解决办法
3716
查看次数

标签 统计

bash ×1

colors ×1

gdb ×1

relocation ×1