:orphan:
# PetscDLAddr
find the name of a symbol in a dynamic library 
## Synopsis
```
PetscErrorCode PetscDLAddr(void (*func)(void), char **name)
```
Not Collective


## Input Parameters

- ***handle -*** obtained with `PetscDLOpen()` or `NULL`
- ***func   -*** pointer to the function, `NULL` if not found



## Output Parameter

- ***name   -*** name of symbol, or `NULL` if name lookup is not supported.





## Notes
The caller must free the returned name.

In order to be dynamically loadable, the symbol has to be exported as such.  On many UNIX-like
systems this requires platform-specific linker flags.


## See Also
 `PetscDLClose()`, `PetscDLSym()`, `PetscDLOpen()`, `PetscDLLibrary`, `PetscLoadDynamicLibrary()`, `PetscDLLibraryAppend()`,
`PetscDLLibraryRetrieve()`, `PetscDLLibraryOpen()`, `PetscDLLibraryClose()`, `PetscDLLibrarySym()`

## Level
developer

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/sys/dll/dlimpl.c.html#PetscDLAddr">src/sys/dll/dlimpl.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/sys/dll/dlimpl.c)


[Index of all Sys routines](index.md)  
[Table of Contents for all manual pages](/manualpages/index.md)  
[Index of all manual pages](/manualpages/singleindex.md)  
