通过gdb得到bang函数的起始地址位
时间: 2024-01-02 22:03:31 浏览: 32
好的,您可以使用以下步骤来得到 `bang` 函数的起始地址:
1. 在终端中打开您想要调试的可执行文件:
```
gdb <可执行文件名>
```
2. 使用 `break` 命令在 `bang` 函数的第一行设置一个断点:
```
break bang
```
3. 运行程序:
```
run
```
4. 当程序停在断点处时,使用 `info address` 命令来得到 `bang` 函数的起始地址:
```
info address bang
```
输出结果应该如下所示:
```
Symbol "bang" is at 0x<起始地址> in section .text
```
其中,`<起始地址>` 就是 `bang` 函数的起始地址。
注意:如果 `bang` 函数没有被调用过,那么程序可能不会停在断点处,您可以手动调用一次 `bang` 函数来使程序停在断点处。
相关问题
通过gdb得到bang函数的起始地址位,并将地址位反汇编
要通过 gdb 得到 bang 函数的起始地址,可以先使用 gdb 打开对应的可执行文件,然后在 gdb 命令行中输入以下命令:
```
(gdb) info address bang
```
该命令会输出 bang 函数的起始地址。假设输出的地址为 0x12345678,那么可以使用以下命令来反汇编该函数:
```
(gdb) disassemble 0x12345678
```
该命令会反汇编从地址 0x12345678 开始的一段代码,并输出对应的汇编代码。注意,这里的地址应该是实际得到的地址,而不是上面的示例地址。
gdb 查看类成员函数地址
可以通过以下步骤在 GDB 中查看类成员函数的地址:
1. 在 GDB 中设置断点:`break <类名>::<成员函数名>`
2. 运行程序,当断点被触发时,进入 GDB 的调试模式。
3. 输入命令:`info address <成员函数名>`,GDB 将会显示出该成员函数的地址。
例如,假设我们有一个名为 `MyClass` 的类,它有一个名为 `myFunc` 的成员函数,可以在 GDB 中执行以下命令:
```
break MyClass::myFunc
run
info address MyClass::myFunc
```
GDB 将显示出 `myFunc` 函数的地址。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)