Solaris 模块调试器指南

mdb_readsym()

ssize_t mdb_readsym(void *buf, size_t nbytes, const char *name);

mdb_readsym()mdb_vread() 类似,只不过是读取开始的虚拟地址是根据 name 指定的符号的值获取的。如果找不到该名称的符号或者出现读取错误,则返回 -1;否则返回 nbytes 以表示成功。

如果需要区分符号查找失败和读取失败,则调用方可以首先单独查找符号。主要可执行文件的符号表用于符号查找;如果符号驻留在其他符号表中,则必须首先应用 mdb_lookup_by_obj(),然后应用 mdb_vread()