> For the complete documentation index, see [llms.txt](https://docs.hex-rays.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hex-rays.com/ida-9.5/ida-actions/setnametype.md).

# SetNameType

## Description

Setup name representation. Dummy names are automatically generated by IDA. They are used to denote subroutines, program locations and data. Dummy names have various prefixes depending on the item type and value:

| Prefix      | Description                          |
| ----------- | ------------------------------------ |
| `sub_`      | instruction, subroutine start        |
| `locret_`   | 'return' instruction                 |
| `loc_`      | instruction                          |
| `off_`      | data, contains offset value          |
| `seg_`      | data, contains segment address value |
| `asc_`      | data, string literal                 |
| `byte_`     | data, byte                           |
| `word_`     | data, 16-bit                         |
| `dword_`    | data, 32-bit                         |
| `qword_`    | data, 64-bit                         |
| `byte3_`    | data, 3 bytes                        |
| `xmmword_`  | data, 128-bit                        |
| `ymmword_`  | data, 256-bit                        |
| `packreal_` | data, packed real                    |
| `flt_`      | floating point data, 32-bit          |
| `dbl_`      | floating point data, 64-bit          |
| `tbyte_`    | floating point data, 80-bit          |
| `stru_`     | structure                            |
| `custdata_` | custom data type                     |
| `algn_`     | alignment directive                  |
| `unk_`      | unexplored byte                      |

You can change representation of dummy names. IDA supports several types of dummy names:

| Format | Example          | Description                                                                          |
| ------ | ---------------- | ------------------------------------------------------------------------------------ |
| `0`    | `loc_0_1234`     | segment base address relative to program base address & offset from the segment base |
| `1`    | `loc_1000_1234`  | segment base address & offset from the segment base                                  |
| `2`    | `loc_dseg_1234`  | segment name & offset from the segment base                                          |
| `3`    | `loc_0_11234`    | segment relative to base address & full address                                      |
| `4`    | `loc_1000_11234` | segment base address & full address                                                  |
| `5`    | `loc_dseg_11234` | segment name & full address                                                          |
| `6`    | `loc_12`         | full address                                                                         |
| `7`    | `loc_0012`       | full address (at least 4 digits)                                                     |
| `8`    | `loc_00000012`   | full address (at least 8 digits)                                                     |
| `9`    | `dseg_1234`      | the same as 2, but without data type specifier                                       |
| `10`   | `loc_1`          | enumerated names (loc\_1,loc\_2,loc\_3...)                                           |

If you have selected names type 10 (enumerated names), you may renumber them using a checkbox. The process is relatively fast, surprisingly.

The best representation for MS DOS programs is #0, for 16-bit processors - #7, and for 32-bit processors - #8. You can change dummy names type any time you want.

You can also set up types of names included in the name list (Jump by name... command, action `JumpName`). IDA knows about the following types of names:

* normal names
* public names
* weak public or extern names
* autogenerated (meaningful) names.
* dummy (meaningless) names.

Dummy names may be public or weak, but they never appear in the list of names. You can specify the type of a name when you create or rename it.

You can also set maximal length of new names. Old names will not be affected by this parameter.

## Names in backticks

Names from Rust, Go, Swift or C++ binaries often hold characters that are also used by the code around them, such as `(`, `*`, `<` or spaces. In a listing, such a name could merge with that code: `jmp short fmt.(*ss).skipSpace`. IDA puts these names in backticks, so you can see where each name starts and ends:

![The start of a Go function, with its unusual names in backticks](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-91ffbd5a1b1755890bf8065b9ee8994b2391506c%2Fnames-backticks-on.png?alt=media)

A name stays bare (without backticks) if:

* it has only letters, digits, the characters the processor allows in names (for example `_`, `$`, `?` and `@` on x86), `.`, and `::` between its parts; or
* it has the shape of a C++ name: template arguments, operators, destructors, MSVC names such as `` `anonymous namespace' ``; or
* it is an Objective-C method name, such as `-[NSString stringWithFormat:]`.

The backticks are only a display convention. They are not part of the name, and lists such as the Names and Functions windows show names without them. Inside the backticks, a backtick or a backslash in the name is preceded by a backslash. You can type a name in backticks where IDA asks for an address, for example in Jump to address.

The disassembly, the type listings and the pseudocode put names in backticks. To show names as they are, use **Options → Name representation...**:

![The Name representation entry in the Options menu](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-f41037ce75f19e32e0623870bf5658e38d4f9625%2Fname-representation-menu.png?alt=media)

and clear **Quote unusual names with backticks**:

![The Quote unusual names with backticks checkbox in the Names dialog](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-cd25554a9297400cba80ef99b50a36b464f4777c%2Fname-representation-backticks.png?alt=media)

The same function, with the option cleared:

![The same Go function, with bare names](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-92aa26b46dfff814855ac84ee84514d45845895c%2Fnames-backticks-off.png?alt=media)

The option is saved in the database. For new databases, its default comes from `BARE_NAMES` in [IDA.CFG](/ida-9.5/core/user-interface/concepts/configuration-files.md): `NO` (the default) puts unusual names in backticks.

See also: the Rename command.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.hex-rays.com/ida-9.5/ida-actions/setnametype.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
