---
name: "dwarf_add_AT_comp_dir"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/dwarf_add_AT_comp_dir"
---

# dwarf\_add\_AT\_comp\_dir(3)

create and attach a DW\_AT\_comp\_dir attribute

## NAME

**dwarf\_add\_AT\_comp\_dir** – create and attach a DW\_AT\_comp\_dir attribute

## LIBRARY

library “libdwarf”

## SYNOPSIS

**#include \<libdwarf.h\>**

*Dwarf\_P\_Attribute*\

**dwarf\_add\_AT\_comp\_dir**(*Dwarf\_P\_Die die*, *char \*dir*, *Dwarf\_Error \*err*);

## DESCRIPTION

Function **dwarf\_add\_AT\_comp\_dir**() creates a DW\_AT\_comp\_dir attribute descriptor and attaches it to the debugging information entry referenced by argument *die*. The created attribute will have DWARF form DW\_FORM\_strp.

Argument *die* should reference a debugging information entry allocated using [dwarf\_new\_die(3)](/dwarf_new_die/3.md).

Argument *dir* should point to a NUL-terminated string which will become the value of the created attribute.

If argument *err* is not NULL, it will be used to store error information in case of an error.

## RETURN VALUES

On success, function **dwarf\_add\_AT\_comp\_dir**() returns the created attribute descriptor. In case of an error, function **dwarf\_add\_AT\_comp\_dir**() returns DW\_DLV\_BADADDR and sets the argument *err*.

## ERRORS

Function **dwarf\_add\_AT\_comp\_dir**() can fail with:

- \[DW\_DLE\_ARGUMENT\]

  Either of the arguments *die* or *dir* was NULL.

- \[DW\_DLE\_MEMORY\]

  An out of memory condition was encountered during the execution of the function.

## SEE ALSO

[dwarf(3)](/dwarf/3.md), [dwarf\_add\_AT\_const\_value\_string(3)](/dwarf_add_AT_const_value_string/3.md), [dwarf\_add\_AT\_name(3)](/dwarf_add_AT_name/3.md), [dwarf\_add\_AT\_producer(3)](/dwarf_add_AT_producer/3.md), [dwarf\_add\_AT\_string(3)](/dwarf_add_AT_string/3.md), [dwarf\_new\_die(3)](/dwarf_new_die/3.md)
