本博客(http://blog.csdn.net/livelylittlefish)贴出作者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!
GDB程序运行时的参数设置
0. 引子
我们在编程中,有时需要在程序启动/运行时指定参数,例如最常见的main函数。如果我们想用gdb调试程序时,该如何输入参数?这就是本文要讨论的内容。
1. 实验
该程序动态加载libc的数学库文件(即math库),然后在其中搜索sin函数,并求出p/2的正玄值。该数学库模块文件通过参数输入,该模块位于位于/lib/libdl-2.7.so。
文件名testRundl.c,代码如下。
#include <stdio.h>
#include <dlfcn.h>
int main (int argc, char* argv[])
{
void* handle;
char* error;
double (*func)(double);
//load the shared object library by input parameter
handle = dlopen(argv[1], RTLD_NOW);
if (0 == handle)
{
printf("open library %s error: %s/n", argv[