Repository: rizinorg/rizin
Pull request #5122: Refine the output of iz command and remove ordinal in RzBinString
Author: login: PeiweiHu
Labels: name: rz-bin
name: rz-test
name: RzBin
name: rz-find
name: API
name: RzCore
name: java
name: DEX
Created: 2025-05-04T15:23:59Z | Merged: 2025-05-23T13:46:30Z


 <!-- Filling this template is mandatory -->

**Your checklist for this pull request**
- [x] I've read the [guidelines for contributing](https://github.com/rizinorg/rizin/blob/master/DEVELOPERS.md) to this repository.
- [x] I made sure to follow the project's [coding style](https://github.com/rizinorg/rizin/blob/master/DEVELOPERS.md#code-style).
- [ ] I've documented every `RZ_API` function and struct this PR changes.
- [x] I've added tests that prove my changes are effective (required for changes to `RZ_API`).
- [ ] I've updated the [Rizin book](https://github.com/rizinorg/book) with the relevant information (if needed).

**Detailed description**

<!-- Explain the **details** for making this change. Is a new feature implemented? What existing problem does the pull request solve? How does the pull request solve these issues? Please provide enough information so that others can review your pull request. -->

The following changes are made for the command iz*:

* add new column **flag** and **xref-from**
* remove the column **nth**
* also fix a memory leak


**Test plan**

<!-- What steps should the reviewer take to test your pull request? Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots/videos. This is your time to re-check that everything works and that you covered all the edge cases -->

CI is green

**Closing issues**

<!-- put "closes #XXXX" in your comment to auto-close the issue that your PR fixes (if any). -->

closes https://github.com/rizinorg/rizin/issues/5109



Diff:
diff --git a/librz/bin/bfile_string.c b/librz/bin/bfile_string.c
index e043cbee457..8bdc7fd181e 100644
--- a/librz/bin/bfile_string.c
+++ b/librz/bin/bfile_string.c
@@ -213,19 +213,6 @@ static bool create_string_search_thread(RzThreadPool *pool, RzThreadQueue *inter
 	return true;
 }
 
-static int string_compare_sort(const RzBinString *a, const RzBinString *b, void *user) {
-	if (b->paddr > a->paddr) {
-		return -1;
-	} else if (b->paddr < a->paddr) {
-		return 1;
-	} else if (b->vaddr > a->vaddr) {
-		return -1;
-	} else if (b->vaddr < a->vaddr) {
-		return 1;
-	}
-	return 0;
-}
-
 static void string_scan_range_cfstring(RzBinFile *bf, HtUP *strings_db, RzPVector /*<RzBinString *>*/ *results, const RzBinSection *section) {
 	// load objc/swift strings from CFstring table section
 
@@ -268,7 +255,6 @@ static void string_scan_range_cfstring(RzBinFile *bf, HtUP *strings_db, RzPVecto
 		bs->type = s->type;
 		bs->length = s->length;
 		bs->size = s->size;
-		bs->ordinal = s->ordinal;
 		bs->vaddr = cfstr_vaddr;
 		bs->paddr = rz_bin_object_v2p(o, bs->vaddr);
 		bs->string = rz_str_newf("cstr.%s", s->string);
@@ -278,6 +264,19 @@ static void string_scan_range_cfstring(RzBinFile *bf, HtUP *strings_db, RzPVecto
 	free(sbuf);
 }
 
+static int string_compare_sort(const RzBinString *a, const RzBinString *b, void *user) {
+	if (b->paddr > a->paddr) {
+		return -1;
+	} else if (b->paddr < a->paddr) {
+		return 1;
+	} else if (b->vaddr > a->vaddr) {
+		return -1;
+	} else if (b->vaddr < a->vaddr) {
+		return 1;
+	}
+	return 0;
+}
+
 static void scan_cfstring_table(RzBinFile *bf, HtUP *strings_db, RzPVector /*<RzBinString *>*/ *results, ut64 max_region_size) {
 	void **iter = NULL;
 	RzBinSection *section = NULL;
@@ -506,17 +505,6 @@ RZ_API RZ_OWN RzPVector /*<RzBinString *>*/ *rz_bin_file_strings(RZ_NONNULL RzBi
 	}
 	rz_pvector_sort(results, (RzPVectorComparator)string_compare_sort, NULL);
 
-	{
-		void **it;
-		RzBinString *bstr;
-		ut32 ordinal = 0;
-		rz_pvector_foreach (results, it) {
-			bstr = *it;
-			bstr->ordinal = ordinal;
-			ordinal++;
-		}
-	}
-
 fail:
 	if (pool) {
 		for (ut32 i = 0; i < pool_size; ++i) {
diff --git a/librz/bin/format/dex/dex.c b/librz/bin/format/dex/dex.c
index fddd075fbb1..bf4a589c5e3 100644
--- a/librz/bin/format/dex/dex.c
+++ b/librz/bin/format/dex/dex.c
@@ -748,7 +748,6 @@ RZ_API RZ_OWN RzPVector /*<RzBinString *>*/ *rz_bin_dex_strings(RZ_NONNULL RzBin
 		return NULL;
 	}
 
-	ut32 ordinal = 0;
 	rz_pvector_foreach (dex->strings, it) {
 		string = (DexString *)*it;
 		RzBinString *bstr = RZ_NEW0(RzBinString);
@@ -757,7 +756,6 @@ RZ_API RZ_OWN RzPVector /*<RzBinString *>*/ *rz_bin_dex_strings(RZ_NONNULL RzBin
 		}
 		bstr->paddr = string->offset;
 		bstr->vaddr = RZ_DEX_VIRT_ADDRESS + string->offset;
-		bstr->ordinal = ordinal;
 		bstr->length = string->size;
 		bstr->size = string->size;
 		bstr->string = rz_str_ndup(string->data, string->size);
@@ -765,7 +763,6 @@ RZ_API RZ_OWN RzPVector /*<RzBinString *>*/ *rz_bin_dex_strings(RZ_NONNULL RzBin
 		if (!rz_pvector_push(strings, bstr)) {
 			free(bstr);
 		}
-		ordinal++;
 	}
 	return strings;
 }
diff --git a/librz/bin/format/java/class_bin.c b/librz/bin/format/java/class_bin.c
index 1a72ecb6e20..b4b276afdd1 100644
--- a/librz/bin/format/java/class_bin.c
+++ b/librz/bin/format/java/class_bin.c
@@ -1022,7 +1022,6 @@ RZ_API RZ_OWN RzPVector /*<RzBinString *>*/ *rz_bin_java_class_strings(RZ_NONNUL
 				continue;
 			}
 			bstr->paddr = cpool->offset;
-			bstr->ordinal = i;
 			bstr->length = cpool->size;
 			bstr->size = cpool->size;
 			bstr->string = string;
@@ -1040,7 +1039,6 @@ RZ_API RZ_OWN RzPVector /*<RzBinString *>*/ *rz_bin_java_class_strings(RZ_NONNUL
 				continue;
 			}
 			bstr->paddr = attr->offset;
-			bstr->ordinal = i;
 			bstr->length = attr->attribute_length;
 			bstr->size = attr->attribute_length;
 			bstr->string = rz_str_dup(attr->info);
diff --git a/librz/bin/format/pyc/marshal.c b/librz/bin/format/pyc/marshal.c
index e44723513f7..287a989a4bf 100644
--- a/librz/bin/format/pyc/marshal.c
+++ b/librz/bin/format/pyc/marshal.c
@@ -436,7 +436,6 @@ static bool add_string_to_cache(RzBinPycObj *pyc, ut64 addr, const char *data, u
 	string->paddr = string->vaddr = addr;
 	string->size = size;
 	string->length = length;
-	string->ordinal = 0;
 	string->type = type;
 	string->string = rz_str_dup(data);
 	if (!rz_pvector_push(pyc->strings_cache, string)) {
diff --git a/librz/core/cbin.c b/librz/core/cbin.c
index fad31879b54..babe732fcf9 100644
--- a/librz/core/cbin.c
+++ b/librz/core/cbin.c
@@ -2686,7 +2686,44 @@ RZ_API bool rz_core_bin_segments_print(RZ_NONNULL RzCore *core, RZ_NONNULL RzBin
 	return true;
 }
 
-static bool strings_print(RzCore *core, RzCmdStateOutput *state, const RzPVector /*<RzBinString *>*/ *vec) {
+/**
+ * \brief Collect cross-references and flags for strings_print
+ *
+ * \param core Pointer to RzCore
+ * \param paddr Physical address
+ * \param xref_address_str Output parameter for cross-reference address string
+ * \param flag_name_str Output parameter for flag name string
+ */
+static void collect_string_xrefs_and_flags(RzCore *core, ut64 paddr, char **xref_address_str, char **flag_name_str) {
+	// search xrefs to string
+	RzList *xrefs = rz_analysis_xrefs_get_to(core->analysis, paddr);
+	RzAnalysisXRef *xref;
+	RzListIter *xrefIter;
+	RzStrBuf *xref_addresses = rz_strbuf_new("");
+	rz_list_foreach (xrefs, xrefIter, xref) {
+		if (rz_strbuf_length(xref_addresses) > 0) {
+			rz_strbuf_append(xref_addresses, ",");
+		}
+		RzFlagItem *f = rz_flag_get_at(core->flags, xref->from, false);
+		if (f) {
+			const char *name = core->flags->realnames && f->realname ? f->realname : f->name;
+			if (f->offset != xref->from) {
+				rz_strbuf_appendf(xref_addresses, "%s + %d\n", name, (int)(xref->from - f->offset));
+			} else {
+				rz_strbuf_append(xref_addresses, name);
+			}
+		} else {
+			char addr_str[32];
+			rz_strf(addr_str, "0x%08" PFMT64x, xref->from);
+			rz_strbuf_append(xref_addresses, addr_str);
+		}
+	}
+	rz_list_free(xrefs);
+	*xref_address_str = rz_strbuf_drain(xref_addresses);
+	*flag_name_str = rz_flag_get_liststr(core->flags, paddr);
+}
+
+static bool strings_print(RzCore *core, RzCmdStateOutput *state, const RzPVector /*<RzBinString *>*/ *vec, bool print_xref) {
 	bool b64str = rz_config_get_i(core->config, "bin.b64str");
 	int va = (core->io->va || core->bin->is_debugger) ? VA_TRUE : VA_FALSE;
 	RzBinObject *obj = rz_bin_cur_object(core->bin);
@@ -2696,7 +2733,11 @@ static bool strings_print(RzCore *core, RzCmdStateOutput *state, const RzPVector
 	RzBinSection *section;
 
 	rz_cmd_state_output_array_start(state);
-	rz_cmd_state_output_set_columnsf(state, "nXXnnsss", "nth", "paddr", "vaddr", "len", "size", "section", "type", "string");
+	if (print_xref) {
+		rz_cmd_state_output_set_columnsf(state, "XXsnnssss", "paddr", "vaddr", "flag", "len", "size", "section", "type", "xref-from", "string");
+	} else {
+		rz_cmd_state_output_set_columnsf(state, "XXnnsss", "paddr", "vaddr", "len", "size", "section", "type", "string");
+	}
 
 	RzBinString b64 = { 0 };
 	rz_pvector_foreach (vec, iter) {
@@ -2705,6 +2746,13 @@ static bool strings_print(RzCore *core, RzCmdStateOutput *state, const RzPVector
 		char quiet_val[20];
 		ut64 paddr, vaddr;
 		paddr = string->paddr;
+
+		char *xref_address_str = NULL;
+		char *flag_name_str = NULL;
+		if (print_xref) {
+			collect_string_xrefs_and_flags(core, paddr, &xref_address_str, &flag_name_str);
+		}
+
 		vaddr = obj ? rva(obj, paddr, string->vaddr, va) : paddr;
 		if (!rz_bin_string_filter(core->bin, string->string, vaddr)) {
 			continue;
@@ -2742,12 +2790,15 @@ static bool strings_print(RzCore *core, RzCmdStateOutput *state, const RzPVector
 			pj_o(state->d.pj);
 			pj_kn(state->d.pj, "vaddr", vaddr);
 			pj_kn(state->d.pj, "paddr", paddr);
-			pj_kn(state->d.pj, "ordinal", string->ordinal);
 			pj_kn(state->d.pj, "size", string->size);
 			pj_kn(state->d.pj, "length", string->length);
 			pj_ks(state->d.pj, "section", section_name);
 			pj_ks(state->d.pj, "type", type_string);
 			// data itself may be encoded so use pj_ks
+			if (print_xref) {
+				pj_ks(state->d.pj, "flag", flag_name_str);
+				pj_ks(state->d.pj, "xref-from", xref_address_str);
+			}
 			pj_ks(state->d.pj, "string", string->string);
 
 			switch (string->type) {
@@ -2836,9 +2887,15 @@ static bool strings_print(RzCore *core, RzCmdStateOutput *state, const RzPVector
 				break;
 			}
 			char *bufstr = rz_strbuf_drain(buf);
-			rz_table_add_rowf(state->d.t, "nXXddsss", (ut64)string->ordinal, paddr, vaddr,
-				(int)string->length, (int)string->size, section_name,
-				type_string, bufstr);
+			if (print_xref) {
+				rz_table_add_rowf(state->d.t, "XXsddssss", paddr, vaddr, flag_name_str,
+					(int)string->length, (int)string->size, section_name,
+					type_string, xref_address_str, bufstr);
+			} else {
+				rz_table_add_rowf(state->d.t, "XXddsss", paddr, vaddr,
+					(int)string->length, (int)string->size, section_name,
+					type_string, bufstr);
+			}
 			free(bufstr);
 			free(no_dbl_bslash_str);
 			break;
@@ -2860,6 +2917,8 @@ static bool strings_print(RzCore *core, RzCmdStateOutput *state, const RzPVector
 			break;
 		}
 		free(escaped_string);
+		free(flag_name_str);
+		free(xref_address_str);
 	}
 	RZ_FREE(b64.string);
 	rz_cmd_state_output_array_end(state);
@@ -2870,7 +2929,7 @@ RZ_API bool rz_core_bin_strings_print(RZ_NONNULL RzCore *core, RZ_NONNULL RzBinF
 	rz_return_val_if_fail(core && bf && state, false);
 
 	const RzPVector *vec = rz_bin_object_get_strings(bf->o);
-	return strings_print(core, state, vec);
+	return strings_print(core, state, vec, false);
 }
 
 /***
@@ -2941,7 +3000,7 @@ RZ_API bool rz_core_bin_whole_strings_print(RZ_NONNULL RzCore *core, RZ_NONNULL
 	if (!l) {
 		return false;
 	}
-	bool res = strings_print(core, state, l);
+	bool res = strings_print(core, state, l, false);
 	rz_pvector_free(l);
 	return res;
 }
@@ -2965,7 +3024,7 @@ RZ_API bool rz_core_bin_xrefs_strings_print(RZ_NONNULL RzCore *core, RZ_NONNULL
 	void **iter;
 	rz_pvector_foreach (whole_strings, iter) {
 		RzBinString *string = *iter;
-		const RzList *list = rz_analysis_xrefs_get_to(core->analysis, string->paddr);
+		RzList *list = rz_analysis_xrefs_get_to(core->analysis, string->paddr);
 		const RzAnalysisXRef *xref;
 		const RzListIter *iterator;
 		rz_list_foreach (list, iterator, xref) {
@@ -2980,8 +3039,9 @@ RZ_API bool rz_core_bin_xrefs_strings_print(RZ_NONNULL RzCore *core, RZ_NONNULL
 				break;
 			}
 		}
+		rz_list_free(list);
 	}
-	bool res = strings_print(core, state, xrefs_strings);
+	bool res = strings_print(core, state, xrefs_strings, true);
 	rz_pvector_free(whole_strings);
 	rz_pvector_free(xrefs_strings);
 	return res;
diff --git a/librz/core/golang.c b/librz/core/golang.c
index 14f9271a91e..84ea6aafd7d 100644
--- a/librz/core/golang.c
+++ b/librz/core/golang.c
@@ -643,7 +643,6 @@ RZ_API bool rz_core_analysis_recover_golang_functions(RzCore *core) {
 }
 
 static bool add_new_bin_string(RzCore *core, char *string, ut64 vaddr, ut32 size) {
-	ut32 ordinal = 0;
 	RzBinString *bstr;
 	RzBin *bin = core->bin;
 	RzBinFile *bf = rz_bin_cur(bin);
@@ -658,9 +657,6 @@ static bool add_new_bin_string(RzCore *core, char *string, ut64 vaddr, ut32 size
 		return true;
 	}
 
-	const RzPVector *strings = rz_bin_object_get_strings(bf->o);
-	ordinal = rz_pvector_len(strings);
-
 	ut64 paddr = rz_io_v2p(core->io, vaddr);
 
 	bstr = RZ_NEW0(RzBinString);
@@ -671,7 +667,6 @@ static bool add_new_bin_string(RzCore *core, char *string, ut64 vaddr, ut32 size
 	}
 	bstr->paddr = paddr;
 	bstr->vaddr = vaddr;
-	bstr->ordinal = ordinal;
 	bstr->length = bstr->size = size;
 	bstr->string = string;
 	bstr->type = RZ_STRING_ENC_UTF8;
diff --git a/librz/include/rz_bin.h b/librz/include/rz_bin.h
index 8b3c6db9968..774f50d6442 100644
--- a/librz/include/rz_bin.h
+++ b/librz/include/rz_bin.h
@@ -745,7 +745,6 @@ typedef struct rz_bin_string_t {
 	 * Note: This is not related to the physical addresses an MMU would manage!
 	 */
 	ut64 paddr;
-	ut32 ordinal;
 	ut32 size; // size of buffer containing the string in bytes
 	ut32 length; // length of string in chars
 	RzStrEnc type; // Ascii Wide cp850 utf8 mutf8 base64 ...
diff --git a/librz/main/rz-bin.c b/librz/main/rz-bin.c
index 3d98026b35b..be8c3d2a3ed 100644
--- a/librz/main/rz-bin.c
+++ b/librz/main/rz-bin.c
@@ -679,7 +679,6 @@ static void print_string(RzBinFile *bf, RzBinString *string, PJ *pj, int mode) {
 		pj_o(pj);
 		pj_kn(pj, "vaddr", vaddr);
 		pj_kn(pj, "paddr", string->paddr);
-		pj_kn(pj, "ordinal", string->ordinal);
 		pj_kn(pj, "size", string->size);
 		pj_kn(pj, "length", string->length);
 		pj_ks(pj, "section", section_name);
@@ -694,8 +693,8 @@ static void print_string(RzBinFile *bf, RzBinString *string, PJ *pj, int mode) {
 		printf("0x%" PFMT64x " %u %u %s\n", vaddr, string->size, string->length, string->string);
 		break;
 	case RZ_MODE_PRINT:
-		printf("%03u 0x%08" PFMT64x " 0x%08" PFMT64x " %u %u (%s) %s %s\n",
-			string->ordinal, string->paddr, vaddr,
+		printf("0x%08" PFMT64x " 0x%08" PFMT64x " %" PFMT32u " %" PFMT32u " (%s) %s %s\n",
+			string->paddr, vaddr,
 			string->length, string->size,
 			section_name, type_string, string->string);
 		break;
diff --git a/librz/main/rz-find.c b/librz/main/rz-find.c
index 10f44c124ae..9ad05afdcd8 100644
--- a/librz/main/rz-find.c
+++ b/librz/main/rz-find.c
@@ -178,7 +178,6 @@ static void print_bin_string(RzBinFile *bf, RzBinString *string, PJ *pj) {
 		pj_o(pj);
 		pj_kn(pj, "vaddr", string->vaddr);
 		pj_kn(pj, "paddr", string->paddr);
-		pj_kn(pj, "ordinal", string->ordinal);
 		pj_kn(pj, "size", string->size);
 		pj_kn(pj, "length", string->length);
 		pj_ks(pj, "section", section_name);
diff --git a/test/db/cmd/cmd_i b/test/db/cmd/cmd_i
index 0d3a3a1772b..e1703d582fa 100644
--- a/test/db/cmd/cmd_i
+++ b/test/db/cmd/cmd_i
@@ -190,8 +190,8 @@ name size address flags mirror
 -------------------------------
 
 [Strings]
-nth paddr vaddr len size section type string 
----------------------------------------------
+paddr vaddr len size section type string 
+-----------------------------------------
 
 nth vaddr bind type lib name 
 -----------------------------
@@ -201,8 +201,8 @@ nth paddr vaddr bind type size lib name
 ----------------------------------------
 paddr size vaddr vsize align perm name type flags 
 --------------------------------------------------
-nth paddr vaddr len size section type string 
----------------------------------------------
+paddr vaddr len size section type string 
+-----------------------------------------
 EOF
 RUN
 
@@ -3234,24 +3234,24 @@ iz
 EOF
 EXPECT=<<EOF
 -- default --
-nth      paddr      vaddr len size section type  string       
---------------------------------------------------------------
-  0 0x000004b0 0x080484b0  12   13 .rodata ascii Hello world!
+     paddr      vaddr len size section type  string       
+----------------------------------------------------------
+0x000004b0 0x080484b0  12   13 .rodata ascii Hello world!
 -- geq 12 --
-nth      paddr      vaddr len size section type  string       
---------------------------------------------------------------
-  0 0x000004b0 0x080484b0  12   13 .rodata ascii Hello world!
+     paddr      vaddr len size section type  string       
+----------------------------------------------------------
+0x000004b0 0x080484b0  12   13 .rodata ascii Hello world!
 -- geq 13 --
-nth paddr vaddr len size section type string 
----------------------------------------------
+paddr vaddr len size section type string 
+-----------------------------------------
 -- geq 0 --
-nth      paddr      vaddr len size section type  string       
---------------------------------------------------------------
-  0 0x000004b0 0x080484b0  12   13 .rodata ascii Hello world!
+     paddr      vaddr len size section type  string       
+----------------------------------------------------------
+0x000004b0 0x080484b0  12   13 .rodata ascii Hello world!
 -- small buffer 12 --
-nth      paddr      vaddr len size section type  string       
---------------------------------------------------------------
-  0 0x000004b0 0x080484b0  12   12 .rodata ascii Hello world!
+     paddr      vaddr len size section type  string       
+----------------------------------------------------------
+0x000004b0 0x080484b0  12   12 .rodata ascii Hello world!
 EOF
 RUN
 
@@ -3266,31 +3266,31 @@ iz
 EOF
 EXPECT=<<EOF
 -- default --
-nth      paddr       vaddr len size section             type  string            
---------------------------------------------------------------------------------
-  0 0x00000d58 0x100000d58   9   10 2.__TEXT.__cstring  ascii sayHello:
-  1 0x00000d62 0x100000d62   4    5 2.__TEXT.__cstring  ascii init
-  2 0x00000d67 0x100000d67   5    6 2.__TEXT.__cstring  ascii alloc
-  3 0x00000d6d 0x100000d6d   5    6 2.__TEXT.__cstring  ascii Hahha
-  4 0x00000d73 0x100000d73  12   13 2.__TEXT.__cstring  ascii Hello World 
-  5 0x00000d86 0x100000d86   9   10 2.__TEXT.__cstring  ascii callMeNot
-  6 0x00000d90 0x100000d90   7    8 2.__TEXT.__cstring  ascii v16@0:8
-  7 0x00000d98 0x100000d98   9   10 2.__TEXT.__cstring  ascii sayHello2
-  8 0x00000da2 0x100000da2  10   11 2.__TEXT.__cstring  ascii v20@0:8i16
-  9 0x00000dad 0x100000dad  11   12 2.__TEXT.__cstring  ascii sayHello3::
- 10 0x00000db9 0x100000db9  13   14 2.__TEXT.__cstring  ascii v24@0:8i16i20
- 11 0x00000dc7 0x100000dc7   8    9 2.__TEXT.__cstring  ascii sayLong:
- 12 0x00000dd0 0x100000dd0  10   11 2.__TEXT.__cstring  ascii v24@0:8Q16
- 13 0x00000ddb 0x100000ddb   7    8 2.__TEXT.__cstring  ascii @16@0:8
- 14 0x00000de3 0x100000de3   4    5 2.__TEXT.__cstring  ascii Test
- 15 0x00001058 0x100001058   5    6 9.__DATA.__cfstring ascii cstr.Hahha
- 16 0x00001078 0x100001078  12   13 9.__DATA.__cfstring ascii cstr.Hello World 
+     paddr       vaddr len size section             type  string            
+----------------------------------------------------------------------------
+0x00000d58 0x100000d58   9   10 2.__TEXT.__cstring  ascii sayHello:
+0x00000d62 0x100000d62   4    5 2.__TEXT.__cstring  ascii init
+0x00000d67 0x100000d67   5    6 2.__TEXT.__cstring  ascii alloc
+0x00000d6d 0x100000d6d   5    6 2.__TEXT.__cstring  ascii Hahha
+0x00000d73 0x100000d73  12   13 2.__TEXT.__cstring  ascii Hello World 
+0x00000d86 0x100000d86   9   10 2.__TEXT.__cstring  ascii callMeNot
+0x00000d90 0x100000d90   7    8 2.__TEXT.__cstring  ascii v16@0:8
+0x00000d98 0x100000d98   9   10 2.__TEXT.__cstring  ascii sayHello2
+0x00000da2 0x100000da2  10   11 2.__TEXT.__cstring  ascii v20@0:8i16
+0x00000dad 0x100000dad  11   12 2.__TEXT.__cstring  ascii sayHello3::
+0x00000db9 0x100000db9  13   14 2.__TEXT.__cstring  ascii v24@0:8i16i20
+0x00000dc7 0x100000dc7   8    9 2.__TEXT.__cstring  ascii sayLong:
+0x00000dd0 0x100000dd0  10   11 2.__TEXT.__cstring  ascii v24@0:8Q16
+0x00000ddb 0x100000ddb   7    8 2.__TEXT.__cstring  ascii @16@0:8
+0x00000de3 0x100000de3   4    5 2.__TEXT.__cstring  ascii Test
+0x00001058 0x100001058   5    6 9.__DATA.__cfstring ascii cstr.Hahha
+0x00001078 0x100001078  12   13 9.__DATA.__cfstring ascii cstr.Hello World 
 -- geq 12 --
-nth      paddr       vaddr len size section             type  string            
---------------------------------------------------------------------------------
-  0 0x00000d73 0x100000d73  12   13 2.__TEXT.__cstring  ascii Hello World 
-  1 0x00000db9 0x100000db9  13   14 2.__TEXT.__cstring  ascii v24@0:8i16i20
-  2 0x00001078 0x100001078  12   13 9.__DATA.__cfstring ascii cstr.Hello World 
+     paddr       vaddr len size section             type  string            
+----------------------------------------------------------------------------
+0x00000d73 0x100000d73  12   13 2.__TEXT.__cstring  ascii Hello World 
+0x00000db9 0x100000db9  13   14 2.__TEXT.__cstring  ascii v24@0:8i16i20
+0x00001078 0x100001078  12   13 9.__DATA.__cfstring ascii cstr.Hello World 
 EOF
 RUN
 
@@ -3620,9 +3620,9 @@ NAME=iz (file x86_64)
 FILE=bins/elf/analysis/hello-linux-x86_64
 CMDS=iz
 EXPECT=<<EOF
-nth      paddr      vaddr len size section type  string      
--------------------------------------------------------------
-  0 0x000005c4 0x004005c4  11   12 .rodata ascii Hello World
+     paddr      vaddr len size section type  string      
+---------------------------------------------------------
+0x000005c4 0x004005c4  11   12 .rodata ascii Hello World
 EOF
 RUN
 
@@ -3679,8 +3679,8 @@ FILE=bins/elf/analysis/hello-linux-x86_64
 ARGS=-n
 CMDS=izz~puts
 EXPECT=<<EOF
-  4 0x000002fa 0x000002fa   4    5         ascii   puts
- 65 0x00001953 0x00001953  17   18         ascii   puts@@GLIBC_2.2.5
+0x000002fa 0x000002fa   4    5         ascii   puts
+0x00001953 0x00001953  17   18         ascii   puts@@GLIBC_2.2.5
 EOF
 RUN
 
@@ -3692,7 +3692,7 @@ e bin.str.purge=all,!0x2fa,!0x1953
 izzj
 EOF
 EXPECT=<<EOF
-[{"vaddr":762,"paddr":762,"ordinal":4,"size":5,"length":4,"section":"","type":"ascii","string":"puts"},{"vaddr":6483,"paddr":6483,"ordinal":65,"size":18,"length":17,"section":"","type":"ascii","string":"puts@@GLIBC_2.2.5"}]
+[{"vaddr":762,"paddr":762,"size":5,"length":4,"section":"","type":"ascii","string":"puts"},{"vaddr":6483,"paddr":6483,"size":18,"length":17,"section":"","type":"ascii","string":"puts@@GLIBC_2.2.5"}]
 EOF
 RUN
 
@@ -3703,7 +3703,7 @@ e bin.str.purge=all,!0x4002fa,!0x15b
 izzj
 EOF
 EXPECT=<<EOF
-[{"vaddr":4195066,"paddr":762,"ordinal":4,"size":5,"length":4,"section":".dynstr","type":"ascii","string":"puts"}]
+[{"vaddr":4195066,"paddr":762,"size":5,"length":4,"section":".dynstr","type":"ascii","string":"puts"}]
 EOF
 RUN
 
@@ -3740,8 +3740,8 @@ iz~green
 iz~wall
 EOF
 EXPECT=<<EOF
-  5 0x00002248 0x00402248  57  118 .rodata utf16le \nutf16le> \\u00a2\\u20ac\\U00010348 in green:\e[32m ¢€𐍈 \e[0m\n blocks=Basic Latin,Latin-1 Supplement,Currency Symbols,Gothic
-  7 0x000022c8 0x004022c8  33   68 .rodata utf16le is a wall with no embedded zeros\n
+0x00002248 0x00402248  57  118 .rodata utf16le \nutf16le> \\u00a2\\u20ac\\U00010348 in green:\e[32m ¢€𐍈 \e[0m\n blocks=Basic Latin,Latin-1 Supplement,Currency Symbols,Gothic
+0x000022c8 0x004022c8  33   68 .rodata utf16le is a wall with no embedded zeros\n
 EOF
 RUN
 
@@ -3755,9 +3755,9 @@ iz~Mountain
 izz~Linux_wide
 EOF
 EXPECT=<<EOF
- 16 0x0000258c 0x0040258c  55  224 .rodata utf32le utf32le> \\u00a2\\u20ac\\U00010348 in cyan:\e[36m ¢€𐍈 \e[0m\n blocks=Basic Latin,Latin-1 Supplement,Currency Symbols,Gothic
- 17 0x0000266c 0x0040266c  48  196 .rodata utf32le Mountain range with embedded quad zeros: 𐌀A𐌀A𐌀A\n blocks=Basic Latin,Old Italic
-135 0x00002528 0x00402528  24  100 .rodata            utf32le \tLinux_wide\\esc: \e[0m¡\r\n blocks=Basic Latin,Latin-1 Supplement
+0x0000258c 0x0040258c  55  224 .rodata utf32le utf32le> \\u00a2\\u20ac\\U00010348 in cyan:\e[36m ¢€𐍈 \e[0m\n blocks=Basic Latin,Latin-1 Supplement,Currency Symbols,Gothic
+0x0000266c 0x0040266c  48  196 .rodata utf32le Mountain range with embedded quad zeros: 𐌀A𐌀A𐌀A\n blocks=Basic Latin,Old Italic
+0x00002528 0x00402528  24  100 .rodata            utf32le \tLinux_wide\\esc: \e[0m¡\r\n blocks=Basic Latin,Latin-1 Supplement
 EOF
 RUN
 
@@ -3769,23 +3769,23 @@ iz~SRSPRHEX
 iz~SRSTASK
 EOF
 EXPECT=<<EOF
- 14 0x000002f6 0x000002f6   8    9         ibm037  SRSGENER
- 19 0x000004dc 0x000004dc   8    9         ibm037  SRSGENER
- 22 0x00000668 0x00000668  92   93         ibm037  SRSGENER_03/06/08_14.16 SRS Version 1.3.0_BASE    COPYRIGHT 1998-2008 DAVID W DANNER ALL RIG
- 63 0x00001682 0x00001682  30   31         ibm037  SRSGENERNO     *SRS>   NONHELD
-115 0x00002faa 0x00002faa  49   50         ibm037  SHUTDOWNSRSOPTS SRSTBLK SRSGENERALL     STARTINGS
- 10 0x0000029a 0x0000029a   8    9         ibm037  SRSPRHEX
- 17 0x00000362 0x00000362   8    9         ibm037  SRSPRHEX
- 64 0x000016d4 0x000016d4   8    9         ibm037  SRSPRHEX
- 67 0x00001861 0x00001861  27   28         ibm037  SRSPRHEX_03/06/08_14.17°Ö}\f
- 71 0x0000191f 0x0000191f   9   10         ibm037  ÏSRSPRHEX
-121 0x0000315b 0x0000315b  27   28         ibm037  SRSPRHEX_03/06/08_14.17°Ö}\f
-125 0x0000323f 0x0000323f   9   10         ibm037  3SRSPRHEX
-191 0x00004c0f 0x00004c0f  27   28         ibm037  SRSPRHEX_03/06/08_14.17°Ö}\f
- 18 0x000003ba 0x000003ba   8    9         ibm037  SRSTASK 
- 91 0x00002545 0x00002545  12   13         ibm037  «SRSTASK  \-
-124 0x00003230 0x00003230   8    9         ibm037  SRSTASK 
-130 0x000033e4 0x000033e4 103  104         ibm037  SRSTASK_12/31/08_20.31 SRS Version 1.3.0_A13001  COPYRIGHT 1998-2008 DAVID W DANNER ALL RIGHTS RESERVED
+0x000002f6 0x000002f6   8    9         ibm037  SRSGENER
+0x000004dc 0x000004dc   8    9         ibm037  SRSGENER
+0x00000668 0x00000668  92   93         ibm037  SRSGENER_03/06/08_14.16 SRS Version 1.3.0_BASE    COPYRIGHT 1998-2008 DAVID W DANNER ALL RIG
+0x00001682 0x00001682  30   31         ibm037  SRSGENERNO     *SRS>   NONHELD
+0x00002faa 0x00002faa  49   50         ibm037  SHUTDOWNSRSOPTS SRSTBLK SRSGENERALL     STARTINGS
+0x0000029a 0x0000029a   8    9         ibm037  SRSPRHEX
+0x00000362 0x00000362   8    9         ibm037  SRSPRHEX
+0x000016d4 0x000016d4   8    9         ibm037  SRSPRHEX
+0x00001861 0x00001861  27   28         ibm037  SRSPRHEX_03/06/08_14.17°Ö}\f
+0x0000191f 0x0000191f   9   10         ibm037  ÏSRSPRHEX
+0x0000315b 0x0000315b  27   28         ibm037  SRSPRHEX_03/06/08_14.17°Ö}\f
+0x0000323f 0x0000323f   9   10         ibm037  3SRSPRHEX
+0x00004c0f 0x00004c0f  27   28         ibm037  SRSPRHEX_03/06/08_14.17°Ö}\f
+0x000003ba 0x000003ba   8    9         ibm037  SRSTASK 
+0x00002545 0x00002545  12   13         ibm037  «SRSTASK  \-
+0x00003230 0x00003230   8    9         ibm037  SRSTASK 
+0x000033e4 0x000033e4 103  104         ibm037  SRSTASK_12/31/08_20.31 SRS Version 1.3.0_A13001  COPYRIGHT 1998-2008 DAVID W DANNER ALL RIGHTS RESERVED
 EOF
 RUN
 
@@ -3798,8 +3798,8 @@ e str.escbslash=false
 iz~Linux_wide
 EOF
 EXPECT=<<EOF
- 17 0x00002528 0x00402528  24  100 .rodata utf32le \tLinux_wide\\esc: \e[0m¡\r\n blocks=Basic Latin,Latin-1 Supplement
- 17 0x00002528 0x00402528  24  100 .rodata utf32le \tLinux_wide\esc: \e[0m¡\r\n blocks=Basic Latin,Latin-1 Supplement
+0x00002528 0x00402528  24  100 .rodata utf32le \tLinux_wide\\esc: \e[0m¡\r\n blocks=Basic Latin,Latin-1 Supplement
+0x00002528 0x00402528  24  100 .rodata utf32le \tLinux_wide\esc: \e[0m¡\r\n blocks=Basic Latin,Latin-1 Supplement
 EOF
 RUN
 
@@ -3811,10 +3811,10 @@ iz~abcdef
 iz~123456
 EOF
 EXPECT=<<EOF
-  1 0x0000060c 0x0040060c   6   24 .rodata utf32le ABCDEF
-  1 0x0000060c 0x0040060c   6   24 .rodata utf32le ABCDEF
-  2 0x00000650 0x00400650  10   40 .rodata utf32le abcdef𐍈  g blocks=Basic Latin,Gothic
-  3 0x00000694 0x00400694   6   24 .rodata utf32le 123456
+0x0000060c 0x0040060c   6   24 .rodata utf32le ABCDEF
+0x0000060c 0x0040060c   6   24 .rodata utf32le ABCDEF
+0x00000650 0x00400650  10   40 .rodata utf32le abcdef𐍈  g blocks=Basic Latin,Gothic
+0x00000694 0x00400694   6   24 .rodata utf32le 123456
 EOF
 RUN
 
@@ -3834,13 +3834,13 @@ EXPECT=<<EOF
 - offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
 0x00000000  5155 5657 5857 595a 5b5c 5d5e 5f52 0000  QUVWXWYZ[\]^_R..
 
-nth      paddr      vaddr len size section type  string         
-----------------------------------------------------------------
-  0 0x00000000 0x00000000  14   15         ascii QUVWXWYZ[\]^_R
+     paddr      vaddr len size section type  string         
+------------------------------------------------------------
+0x00000000 0x00000000  14   15         ascii QUVWXWYZ[\]^_R
 
-nth      paddr      vaddr len size section type  string          
------------------------------------------------------------------
-  0 0x00000000 0x00000000  14   15         ascii QUVWXWYZ[\\]^_R
+     paddr      vaddr len size section type  string          
+-------------------------------------------------------------
+0x00000000 0x00000000  14   15         ascii QUVWXWYZ[\\]^_R
 EOF
 RUN
 
@@ -3863,16 +3863,16 @@ wx 26252625262526250000
 .(izzenc utf16le)
 EOF
 EXPECT=<<EOF
-  0 0x00000004 0x00000004   8    9         ascii abcdefgh
-  0 0x00000004 0x00000004   8    9         ascii abcdefgh
-  0 0x00000004 0x00000004   8    9         ascii abcdefgh
-  0 0x00000000 0x00000000   6   14         utf16le ki扡摣晥桧 blocks=Basic Latin,CJK Unified Ideographs
+0x00000004 0x00000004   8    9         ascii abcdefgh
+0x00000004 0x00000004   8    9         ascii abcdefgh
+0x00000004 0x00000004   8    9         ascii abcdefgh
+0x00000000 0x00000000   6   14         utf16le ki扡摣晥桧 blocks=Basic Latin,CJK Unified Ideographs
 
-  0 0x00000001 0x00000001   6   14         utf16le %%%%最h blocks=Basic Latin,CJK Unified Ideographs
-  0 0x00000000 0x00000000   4   10         utf16le ──── blocks=Box Drawing
+0x00000001 0x00000001   6   14         utf16le %%%%最h blocks=Basic Latin,CJK Unified Ideographs
+0x00000000 0x00000000   4   10         utf16le ──── blocks=Box Drawing
 
-  0 0x00000000 0x00000000   8    9         ascii &%&%&%&%
-  0 0x00000000 0x00000000   4   10         utf16le ┦┦┦┦ blocks=Box Drawing
+0x00000000 0x00000000   8    9         ascii &%&%&%&%
+0x00000000 0x00000000   4   10         utf16le ┦┦┦┦ blocks=Box Drawing
 EOF
 RUN
 
@@ -3892,9 +3892,9 @@ o--
 rm .tmp/strenc-bin
 EOF
 EXPECT=<<EOF
-  0 0x000004b0 0x080484b0  12   13 .rodata ascii Hello world!
-  0 0x000004b4 0x080484b4   8    9 .rodata ascii abcdefgh
-  0 0x000004b4 0x080484b4   8    9 .rodata ascii abcdefgh
+0x000004b0 0x080484b0  12   13 .rodata ascii Hello world!
+0x000004b4 0x080484b4   8    9 .rodata ascii abcdefgh
+0x000004b4 0x080484b4   8    9 .rodata ascii abcdefgh
 EOF
 RUN
 
@@ -4004,7 +4004,7 @@ EXPECT=<<EOF
 0x004022df  0074 0068 0020 006e 006f 0020 0065 006d  .t.h. .n.o. .e.m
 0x004022ef  0062 0065 0064 0064 0065 0064 0020 007a  .b.e.d.d.e.d. .z
 
-[{"vaddr":4202996,"paddr":8692,"ordinal":2,"size":11,"length":10,"section":".rodata","type":"ascii","string":"en_US.utf8"},{"vaddr":4203007,"paddr":8703,"ordinal":3,"size":61,"length":54,"section":".rodata","type":"utf8","string":"utf8> \\u00a2\\u20ac\\U00010348 in yellow:\u001b[33m ¢€𐍈 \u001b[0m\n","blocks":["Basic Latin","Latin-1 Supplement","Currency Symbols","Gothic"]},{"vaddr":4203208,"paddr":8904,"ordinal":7,"size":68,"length":33,"section":".rodata","type":"utf16le","string":"is a wall with no embedded zeros\n"}]
+[{"vaddr":4202996,"paddr":8692,"size":11,"length":10,"section":".rodata","type":"ascii","string":"en_US.utf8"},{"vaddr":4203007,"paddr":8703,"size":61,"length":54,"section":".rodata","type":"utf8","string":"utf8> \\u00a2\\u20ac\\U00010348 in yellow:\u001b[33m ¢€𐍈 \u001b[0m\n","blocks":["Basic Latin","Latin-1 Supplement","Currency Symbols","Gothic"]},{"vaddr":4203208,"paddr":8904,"size":68,"length":33,"section":".rodata","type":"utf16le","string":"is a wall with no embedded zeros\n"}]
 EOF
 RUN
 
@@ -4015,7 +4015,7 @@ e bin.str.purge=all,!4195920
 izzj
 EOF
 EXPECT=<<EOF
-[{"vaddr":4195920,"paddr":1616,"ordinal":13,"size":40,"length":10,"section":".rodata","type":"utf32le","string":"abcdef𐍈  g","blocks":["Basic Latin","Gothic"]}]
+[{"vaddr":4195920,"paddr":1616,"size":40,"length":10,"section":".rodata","type":"utf32le","string":"abcdef𐍈  g","blocks":["Basic Latin","Gothic"]}]
 EOF
 RUN
 
@@ -4068,41 +4068,41 @@ e bin.str.purge=all,!0x413220-0x413235
 EOF
 EXPECT=<<EOF
 --1--
-1089 0x00012420 0x00412420   5    5 .text              ascii   AWAVA
+0x00012420 0x00412420   5    5 .text              ascii   AWAVA
 --2--
 --3--
-  0 0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
-  1 0x00013228 0x00413228  10   11 .rodata ascii sort_files
-  2 0x00013233 0x00413233   6    7 .rodata ascii posix-
-  3 0x0001323a 0x0041323a   4    5 .rodata ascii main
+0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
+0x00013228 0x00413228  10   11 .rodata ascii sort_files
+0x00013233 0x00413233   6    7 .rodata ascii posix-
+0x0001323a 0x0041323a   4    5 .rodata ascii main
 --4--
-  0 0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
-  1 0x00013228 0x00413228  10   11 .rodata ascii sort_files
+0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
+0x00013228 0x00413228  10   11 .rodata ascii sort_files
 --5--
-  2 0x00013233 0x00413233   6    7 .rodata ascii posix-
+0x00013233 0x00413233   6    7 .rodata ascii posix-
 --6--
-  0 0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
+0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
 --7--
-  3 0x0001323a 0x0041323a   4    5 .rodata ascii main
+0x0001323a 0x0041323a   4    5 .rodata ascii main
 --8--
-  1 0x00013228 0x00413228  10   11 .rodata ascii sort_files
+0x00013228 0x00413228  10   11 .rodata ascii sort_files
 --9--
-  0 0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
+0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
 --10--
-  2 0x00013233 0x00413233   6    7 .rodata ascii posix-
+0x00013233 0x00413233   6    7 .rodata ascii posix-
 --11--
-  0 0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
-  1 0x00013228 0x00413228  10   11 .rodata ascii sort_files
-  3 0x0001323a 0x0041323a   4    5 .rodata ascii main
+0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
+0x00013228 0x00413228  10   11 .rodata ascii sort_files
+0x0001323a 0x0041323a   4    5 .rodata ascii main
 --12--
-  0 0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
-  1 0x00013228 0x00413228  10   11 .rodata ascii sort_files
+0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
+0x00013228 0x00413228  10   11 .rodata ascii sort_files
 --13--
-  0 0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
-  1 0x00013228 0x00413228  10   11 .rodata ascii sort_files
+0x000131d8 0x004131d8  11   12 .rodata ascii dev_ino_pop
+0x00013228 0x00413228  10   11 .rodata ascii sort_files
 --14--
-  1 0x00013228 0x00413228  10   11 .rodata ascii sort_files
-  2 0x00013233 0x00413233   6    7 .rodata ascii posix-
+0x00013228 0x00413228  10   11 .rodata ascii sort_files
+0x00013233 0x00413233   6    7 .rodata ascii posix-
 EOF
 RUN
 
@@ -4126,9 +4126,9 @@ RUN
 NAME=regression for #9370
 FILE=bins/elf/analysis/hello-arm32
 ARGS=-m 0x10000
-CMDS=izz~Hello[1,2,3,4,5,6,7,8]
+CMDS=izz~Hello[1,2,3,4,5,6,7]
 EXPECT=<<EOF
-0x00000200 0x00010200 11 12 .rodata ascii Hello World
+0x00010200 11 12 .rodata ascii Hello World
 EOF
 RUN
 
@@ -4644,7 +4644,7 @@ NAME=izz
 FILE=bins/mach0/fatmach0-3true
 CMDS=izz~http~codesigning
 EXPECT=<<EOF
- 94 0x00003f3c 0x100002f3c  47   48                         ascii  ,http://www.apple.com/appleca/codesigning.crl0\r
+0x00003f3c 0x100002f3c  47   48                         ascii  ,http://www.apple.com/appleca/codesigning.crl0\r
 EOF
 RUN
 
@@ -4750,12 +4750,12 @@ RUN
 
 NAME=ascii substring detection (#14499)
 FILE=bins/pe/Reborn_Stub-strings.exe
-CMDS=izz~pomf[1,2,3,4,5,6,7,8]
+CMDS=izz~pomf[1,2,3,4,5,6,7]
 EXPECT=<<EOF
-0x00087f8a 0x00489d8a 26 52 .text utf16le http://pomf.cat/upload.php
-0x000880dd 0x00489edd 19 38 .text utf16le https://a.pomf.cat/
-0x00089bed 0x0048b9ed 26 52 .text utf16le http://pomf.cat/upload.php
-0x00089c22 0x0048ba22 19 40 .text utf16le https://a.pomf.cat/
+0x00489d8a 26 52 .text utf16le http://pomf.cat/upload.php
+0x00489edd 19 38 .text utf16le https://a.pomf.cat/
+0x0048b9ed 26 52 .text utf16le http://pomf.cat/upload.php
+0x0048ba22 19 40 .text utf16le https://a.pomf.cat/
 EOF
 RUN
 
@@ -4922,8 +4922,12 @@ izz:/head/1:quiet
 izz~^0
 EOF
 EXPECT=<<EOF
-  0 0x00000004 0x00000004   7    8         ascii =%s%s%s
-  0 0x00000004 0x00000004   7    8         ascii =%s%s%s
+0x00000004 0x00000004   7    8         ascii =%s%s%s
+0x00000004 0x00000004   7    8         ascii =%s%s%s
+0x00000010 0x00000010   7    8         ascii +%s%s%s
+0x00000018 0x00000018   7    8         ascii -%s%s%s
+0x00000020 0x00000020   9   10         ascii cap_chown
+0x0000002a 0x0000002a   6    7         ascii cap_da
 EOF
 RUN
 
@@ -5083,14 +5087,14 @@ iz
 iz @e:search.str.min_length=2
 EOF
 EXPECT=<<EOF
-nth      paddr      vaddr len size section type  string 
---------------------------------------------------------
-  0 0x0000200d 0x0000200d   4    5 .rodata ascii 4444
-nth      paddr      vaddr len size section type  string 
---------------------------------------------------------
-  0 0x00002006 0x00002006   2    3 .rodata ascii 22
-  1 0x00002009 0x00002009   3    4 .rodata ascii 333
-  2 0x0000200d 0x0000200d   4    5 .rodata ascii 4444
+     paddr      vaddr len size section type  string 
+----------------------------------------------------
+0x0000200d 0x0000200d   4    5 .rodata ascii 4444
+     paddr      vaddr len size section type  string 
+----------------------------------------------------
+0x00002006 0x00002006   2    3 .rodata ascii 22
+0x00002009 0x00002009   3    4 .rodata ascii 333
+0x0000200d 0x0000200d   4    5 .rodata ascii 4444
 EOF
 RUN
 
@@ -5120,9 +5124,9 @@ EXPECT=<<EOF
 0x000000d0  4142 4a41 424b 4142 4c41 424d 4142 4e41  ABJABKABLABMABNA
 0x000000e0  424f 4142 5041 4251 4142 5241 4253 4142  BOABPABQABRABSAB
 0x000000f0  5441 4255 4142 5641 4257 4142 5841 4259  TABUABVABWABXABY
-nth      paddr      vaddr  len size section type  string                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-  0 0x00000000 0x00000000 6140 6141         ascii AAABAACAADAAEAAFAAGAAHAAIAAJAAKAALAAMAANAAOAAPAAQAARAASAATAAUAAVAAWAAXAAYAAZAAaAAbAAcAAdAAeAAfAAgAAhAAiAAjAAkAAlAAmAAnAAoAApAAqAArAAsAAtAAuAAvAAwAAxAAyAAzAA1AA2AA3AA4AA5AA6AA7AA8AA9AA0ABBABCABDABEABFABGABHABIABJABKABLABMABNABOABPABQABRABSABTABUABVABWABXABYABZABaABbABcABdABeABfABgABhABiABjABkABlABmABnABoABpABqABrABsABtABuABvABwABxAByABzAB1AB2AB3AB4AB5AB6AB7AB8AB9AB0ACBACCACDACEACFACGACHACIACJACKACLACMACNACOACPACQACRACSACTACUACVACWACXACYACZACaACbACcACdACeACfACgAChACiACjACkAClACmACnACoACpACqACrACsACtACuACvACwACxACyACzAC1AC2AC3AC4AC5AC6AC7AC8AC9AC0ADBADCADDADEADFADGADHADIADJADKADLADMADNADOADPADQADRADSADTADUADVADWADXADYADZADaADbADcADdADeADfADgADhADiADjADkADlADmADnADoADpADqADrADsADtADuADvADwADxADyADzAD1AD2AD3AD4AD5AD6AD7AD8AD9AD0AEBAECAEDAEEAEFAEGAEHAEIAEJAEKAELAEMAENAEOAEPAEQAERAESAETAEUAEVAEWAEXAEYAEZAEaAEbAEcAEdAEeAEfAEgAEhAEiAEjAEkAElAEmAEnAEoAEpAEqAErAEsAEtAEuAEvAEwAExAEyAEzAE1AE2AE3AE4AE5AE6AE7AE8AE9AE0AFBAFCAFDAFEAFFAFGAFHAFIAFJAFKAFLAFMAFNAFOAFPAFQAFRAFSAFTAFUAFVAFWAFXAFYAFZAFaAFbAFcAFdAFeAFfAFgAFhAFiAFjAFkAFlAFmAFnAFoAFpAFqAFrAFsAFtAFuAFvAFwAFxAFyAFzAF1AF2AF3AF4AF5AF6AF7AF8AF9AF0AGBAGCAGDAGEAGFAGGAGHAGIAGJAGKAGLAGMAGNAGOAGPAGQAGRAGSAGTAGUAGVAGWAGXAGYAGZAGaAGbAGcAGdAGeAGfAGgAGhAGiAGjAGkAGlAGmAGnAGoAGpAGqAGrAGsAGtAGuAGvAGwAGxAGyAGzAG1AG2AG3AG4AG5AG6AG7AG8AG9AG0AHBAHCAHDAHEAHFAHGAHHAHIAHJAHKAHLAHMAHNAHOAHPAHQAHRAHSAHTAHUAHVAHWAHXAHYAHZAHaAHbAHcAHdAHeAHfAHgAHhAHiAHjAHkAHlAHmAHnAHoAHpAHqAHrAHsAHtAHuAHvAHwAHxAHyAHzAH1AH2AH3AH4AH5AH6AH7AH8AH9AH0AIBAICAIDAIEAIFAIGAIHAIIAIJAIKAILAIMAINAIOAIPAIQAIRAISAITAIUAIVAIWAIXAIYAIZAIaAIbAIcAIdAIeAIfAIgAIhAIiAIjAIkAIlAImAInAIoAIpAIqAIrAIsAItAIuAIvAIwAIxAIyAIzAI1AI2AI3AI4AI5AI6AI7AI8AI9AI0AJBAJCAJDAJEAJFAJGAJHAJIAJJAJKAJLAJMAJNAJOAJPAJQAJRAJSAJTAJUAJVAJWAJXAJYAJZAJaAJbAJcAJdAJeAJfAJgAJhAJiAJjAJkAJlAJmAJnAJoAJpAJqAJrAJsAJtAJuAJvAJwAJxAJyAJzAJ1AJ2AJ3AJ4AJ5AJ6AJ7AJ8AJ9AJ0AKBAKCAKDAKEAKFAKGAKHAKIAKJAKKAKLAKMAKNAKOAKPAKQAKRAKSAKTAKUAKVAKWAKXAKYAKZAKaAKbAKcAKdAKeAKfAKgAKhAKiAKjAKkAKlAKmAKnAKoAKpAKqAKrAKsAKtAKuAKvAKwAKxAKyAKzAK1AK2AK3AK4AK5AK6AK7AK8AK9AK0ALBALCALDALEALFALGALHALIALJALKALLALMALNALOALPALQALRALSALTALUALVALWALXALYALZALaALbALcALdALeALfALgALhALiALjALkALlALmALnALoALpALqALrALsALtALuALvALwALxALyALzAL1AL2AL3AL4AL5AL6AL7AL8AL9AL0AMBAMCAMDAMEAMFAMGAMHAMIAMJAMKAMLAMMAMNAMOAMPAMQAMRAMSAMTAMUAMVAMWAMXAMYAMZAMaAMbAMcAMdAMeAMfAMgAMhAMiAMjAMkAMlAMmAMnAMoAMpAMqAMrAMsAMtAMuAMvAMwAMxAMyAMzAM1AM2AM3AM4AM5AM6AM7AM8AM9AM0ANBANCANDANEANFANGANHANIANJANKANLANMANNANOANPANQANRANSANTANUANVANWANXANYANZANaANbANcANdANeANfANgANhANiANjANkANlANmANnANoANpANqANrANsANtANuANvANwANxANyANzAN1AN2AN3AN4AN5AN6AN7AN8AN9AN0AOBAOCAODAOEAOFAOGAOHAOIAOJAOKAOLAOMAONAOOAOPAOQAORAOSAOTAOUAOVAOWAOXAOYAOZAOaAObAOcAOdAOeAOfAOgAOhAOiAOjAOkAOlAOmAOnAOoAOpAOqAOrAOsAOtAOuAOvAOwAOxAOyAOzAO1AO2AO3AO4AO5AO6AO7AO8AO9AO0APBAPCAPDAPEAPFAPGAPHAPIAPJAPKAPLAPMAPNAPOAPPAPQAPRAPSAPTAPUAPVAPWAPXAPYAPZAPaAPbAPcAPdAPeAPfAPgAPhAPiAPjAPkAPlAPmAPnAPoAPpAPqAPrAPsAPtAPuAPvAPwAPxAPyAPzAP1AP2AP3AP4AP5AP6AP7AP8AP9AP0AQBAQCAQDAQEAQFAQGAQHAQIAQJAQKAQLAQMAQNAQOAQPAQQAQRAQSAQTAQUAQVAQWAQXAQYAQZAQaAQbAQcAQdAQeAQfAQgAQhAQiAQjAQkAQlAQmAQnAQoAQpAQqAQrAQsAQtAQuAQvAQwAQxAQyAQzAQ1AQ2AQ3AQ4AQ5AQ6AQ7AQ8AQ9AQ0ARBARCARDAREARFARGARHARIARJARKARLARMARNAROARPARQARRARSARTARUARVARWARXARYARZARaARbARcARdAReARfARgARhARiARjARkARlARmARnARoARpARqARrARsARtARuARvARwARxARyARzAR1AR2AR3AR4AR5AR6AR7AR8AR9AR0ASBASCASDASEASFASGASHASIASJASKASLASMASNASOASPASQASRASSASTASUASVASWASXASYASZASaASbAScASdASeASfASgAShASiASjASkASlASmASnASoASpASqASrASsAStASuASvASwASxASyASzAS1AS2AS3AS4AS5AS6AS7AS8AS9AS0ATBATCATDATEATFATGATHATIATJATKATLATMATNATOATPATQATRATSATTATUATVATWATXATYATZATaATbATcATdATeATfATgAThATiATjATkATlATmATnAToATpATqATrATsATtATuATvATwATxATyATzAT1AT2AT3AT4AT5AT6AT7AT8AT9AT0AUBAUCAUDAUEAUFAUGAUHAUIAUJAUKAULAUMAUNAUOAUPAUQAURAUSAUTAUUAUVAUWAUXAUYAUZAUaAUbAUcAUdAUeAUfAUgAUhAUiAUjAUkAUlAUmAUnAUoAUpAUqAUrAUsAUtAUuAUvAUwAUxAUyAUzAU1AU2AU3AU4AU5AU6AU7AU8AU9AU0AVBAVCAVDAVEAVFAVGAVHAVIAVJAVKAVLAVMAVNAVOAVPAVQAVRAVSAVTAVUAVVAVWAVXAVYAVZAVaAVbAVcAVdAVeAVfAVgAVhAViAVjAVkAVlAVmAVnAVoAVpAVqAVrAVsAVtAVuAVvAVwAVxAVyAVzAV1AV2AV3AV4AV5AV6AV7AV8AV9AV0AWBAWCAWDAWEAWFAWGAWHAWIAWJAWKAWLAWMAWNAWOAWPAWQAWRAWSAWTAWUAWVAWWAWXAWYAWZAWaAWbAWcAWdAWeAWfAWgAWhAWiAWjAWkAWlAWmAWnAWoAWpAWqAWrAWsAWtAWuAWvAWwAWxAWyAWzAW1AW2AW3AW4AW5AW6AW7AW8AW9AW0AXBAXCAXDAXEAXFAXGAXHAXIAXJAXKAXLAXMAXNAXOAXPAXQAXRAXSAXTAXUAXVAXWAXXAXYAXZAXaAXbAXcAXdAXeAXfAXgAXhAXiAXjAXkAXlAXmAXnAXoAXpAXqAXrAXsAXtAXuAXvAXwAXxAXyAXzAX1AX2AX3AX4AX5AX6AX7AX8AX9AX0AYBAYCAYDAYEAYFAYGAYHAYIAYJAYKAYLAYMAYNAYOAYPAYQAYRAYSAYTAYUAYVAYWAYXAYYAYZAYaAYbAYcAYdAYeAYfAYgAYhAYiAYjAYkAYlAYmAYnAYoAYpAYqAYrAYsAYtAYuAYvAYwAYxAYyAYzAY1AY2AY3AY4AY5AY6AY7AY8AY9AY0AZBAZCAZDAZEAZFAZGAZHAZIAZJAZKAZLAZMAZNAZOAZPAZQAZRAZSAZTAZUAZVAZWAZXAZYAZZAZaAZbAZcAZdAZeAZfAZgAZhAZiAZjAZkAZlAZmAZnAZoAZpAZqAZrAZsAZtAZuAZvAZwAZxAZyAZzAZ1AZ2AZ3AZ4AZ5AZ6AZ7AZ8AZ9AZ0AaBAaCAaDAaEAaFAaGAaHAaIAaJAaKAaLAaMAaNAaOAaPAaQAaRAaSAaTAaUAaVAaWAaXAaYAaZAaaAabAacAadAaeAafAagAahAaiAajAakAalAamAanAaoAapAaqAarAasAatAauAavAawAaxAayAazAa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Aa0AbBAbCAbDAbEAbFAbGAbHAbIAbJAbKAbLAbMAbNAbOAbPAbQAbRAbSAbTAbUAbVAbWAbXAbYAbZAbaAbbAbcAbdAbeAbfAbgAbhAbiAbjAbkAblAbmAbnAboAbpAbqAbrAbsAbtAbuAbvAbwAbxAbyAbzAb1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ab0AcBAcCAcDAcEAcFAcGAcHAcIAcJAcKAcLAcMAcNAcOAcPAcQAcRAcSAcTAcUAcVAcWAcXAcYAcZAcaAcbAccAcdAceAcfAcgAchAciAcjAckAclAcmAcnAcoAcpAcqAcrAcsActAcuAcvAcwAcxAcyAczAc1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ac0AdBAdCAdDAdEAdFAdGAdHAdIAdJAdKAdLAdMAdNAdOAdPAdQAdRAdSAdTAdUAdVAdWAdXAdYAdZAdaAdbAdcAddAdeAdfAdgAdhAdiAdjAdkAdlAdmAdnAdoAdpAdqAdrAdsAdtAduAdvAdwAdxAdyAdzAd1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ad0AeBAeCAeDAeEAeFAeGAeHAeIAeJAeKAeLAeMAeNAeOAePAeQAeRAeSAeTAeUAeVAeWAeXAeYAeZAeaAebAecAedAeeAefAegAehAeiAejAekAelAemAenAeoAepAeqAerAesAetAeuAevAewAexAeyAezAe1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Ae0AfBAfCAfDAfEAfFAfGAfHAfIAfJAfKAfLAfMAfNAfOAfPAfQAfRAfSAfTAfUAfVAfWAfXAfYAfZAfaAfbAfcAfdAfeAffAfgAfhAfiAfjAfkAflAfmAfnAfoAfpAfqAfrAfsAftAfuAfvAfwAfxAfyAfzAf1Af2Af3Af4Af5Af6Af7Af8Af9Af0AgBAgCAgDAgEAgFAgGAgHAgIAgJAgKAgLAgMAgNAgOAgPAgQAgRAgSAgTAgUAgVAgWAgXAgYAgZAgaAgbAgcAgdAgeAgfAggAghAgiAgjAgkAglAgmAgnAgoAgpAgqAgrAgsAgtAguAgvAgwAgxAgyAgzAg1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ag0AhBAhCAhDAhEAhFAhGAhHAhIAhJAhKAhLAhMAhNAhOAhPAhQAhRAhSAhTAhUAhVAhWAhXAhYAhZAhaAhbAhcAhdAheAhfAhgAhhA
+     paddr      vaddr  len size section type  string                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+0x00000000 0x00000000 6140 6141         ascii AAABAACAADAAEAAFAAGAAHAAIAAJAAKAALAAMAANAAOAAPAAQAARAASAATAAUAAVAAWAAXAAYAAZAAaAAbAAcAAdAAeAAfAAgAAhAAiAAjAAkAAlAAmAAnAAoAApAAqAArAAsAAtAAuAAvAAwAAxAAyAAzAA1AA2AA3AA4AA5AA6AA7AA8AA9AA0ABBABCABDABEABFABGABHABIABJABKABLABMABNABOABPABQABRABSABTABUABVABWABXABYABZABaABbABcABdABeABfABgABhABiABjABkABlABmABnABoABpABqABrABsABtABuABvABwABxAByABzAB1AB2AB3AB4AB5AB6AB7AB8AB9AB0ACBACCACDACEACFACGACHACIACJACKACLACMACNACOACPACQACRACSACTACUACVACWACXACYACZACaACbACcACdACeACfACgAChACiACjACkAClACmACnACoACpACqACrACsACtACuACvACwACxACyACzAC1AC2AC3AC4AC5AC6AC7AC8AC9AC0ADBADCADDADEADFADGADHADIADJADKADLADMADNADOADPADQADRADSADTADUADVADWADXADYADZADaADbADcADdADeADfADgADhADiADjADkADlADmADnADoADpADqADrADsADtADuADvADwADxADyADzAD1AD2AD3AD4AD5AD6AD7AD8AD9AD0AEBAECAEDAEEAEFAEGAEHAEIAEJAEKAELAEMAENAEOAEPAEQAERAESAETAEUAEVAEWAEXAEYAEZAEaAEbAEcAEdAEeAEfAEgAEhAEiAEjAEkAElAEmAEnAEoAEpAEqAErAEsAEtAEuAEvAEwAExAEyAEzAE1AE2AE3AE4AE5AE6AE7AE8AE9AE0AFBAFCAFDAFEAFFAFGAFHAFIAFJAFKAFLAFMAFNAFOAFPAFQAFRAFSAFTAFUAFVAFWAFXAFYAFZAFaAFbAFcAFdAFeAFfAFgAFhAFiAFjAFkAFlAFmAFnAFoAFpAFqAFrAFsAFtAFuAFvAFwAFxAFyAFzAF1AF2AF3AF4AF5AF6AF7AF8AF9AF0AGBAGCAGDAGEAGFAGGAGHAGIAGJAGKAGLAGMAGNAGOAGPAGQAGRAGSAGTAGUAGVAGWAGXAGYAGZAGaAGbAGcAGdAGeAGfAGgAGhAGiAGjAGkAGlAGmAGnAGoAGpAGqAGrAGsAGtAGuAGvAGwAGxAGyAGzAG1AG2AG3AG4AG5AG6AG7AG8AG9AG0AHBAHCAHDAHEAHFAHGAHHAHIAHJAHKAHLAHMAHNAHOAHPAHQAHRAHSAHTAHUAHVAHWAHXAHYAHZAHaAHbAHcAHdAHeAHfAHgAHhAHiAHjAHkAHlAHmAHnAHoAHpAHqAHrAHsAHtAHuAHvAHwAHxAHyAHzAH1AH2AH3AH4AH5AH6AH7AH8AH9AH0AIBAICAIDAIEAIFAIGAIHAIIAIJAIKAILAIMAINAIOAIPAIQAIRAISAITAIUAIVAIWAIXAIYAIZAIaAIbAIcAIdAIeAIfAIgAIhAIiAIjAIkAIlAImAInAIoAIpAIqAIrAIsAItAIuAIvAIwAIxAIyAIzAI1AI2AI3AI4AI5AI6AI7AI8AI9AI0AJBAJCAJDAJEAJFAJGAJHAJIAJJAJKAJLAJMAJNAJOAJPAJQAJRAJSAJTAJUAJVAJWAJXAJYAJZAJaAJbAJcAJdAJeAJfAJgAJhAJiAJjAJkAJlAJmAJnAJoAJpAJqAJrAJsAJtAJuAJvAJwAJxAJyAJzAJ1AJ2AJ3AJ4AJ5AJ6AJ7AJ8AJ9AJ0AKBAKCAKDAKEAKFAKGAKHAKIAKJAKKAKLAKMAKNAKOAKPAKQAKRAKSAKTAKUAKVAKWAKXAKYAKZAKaAKbAKcAKdAKeAKfAKgAKhAKiAKjAKkAKlAKmAKnAKoAKpAKqAKrAKsAKtAKuAKvAKwAKxAKyAKzAK1AK2AK3AK4AK5AK6AK7AK8AK9AK0ALBALCALDALEALFALGALHALIALJALKALLALMALNALOALPALQALRALSALTALUALVALWALXALYALZALaALbALcALdALeALfALgALhALiALjALkALlALmALnALoALpALqALrALsALtALuALvALwALxALyALzAL1AL2AL3AL4AL5AL6AL7AL8AL9AL0AMBAMCAMDAMEAMFAMGAMHAMIAMJAMKAMLAMMAMNAMOAMPAMQAMRAMSAMTAMUAMVAMWAMXAMYAMZAMaAMbAMcAMdAMeAMfAMgAMhAMiAMjAMkAMlAMmAMnAMoAMpAMqAMrAMsAMtAMuAMvAMwAMxAMyAMzAM1AM2AM3AM4AM5AM6AM7AM8AM9AM0ANBANCANDANEANFANGANHANIANJANKANLANMANNANOANPANQANRANSANTANUANVANWANXANYANZANaANbANcANdANeANfANgANhANiANjANkANlANmANnANoANpANqANrANsANtANuANvANwANxANyANzAN1AN2AN3AN4AN5AN6AN7AN8AN9AN0AOBAOCAODAOEAOFAOGAOHAOIAOJAOKAOLAOMAONAOOAOPAOQAORAOSAOTAOUAOVAOWAOXAOYAOZAOaAObAOcAOdAOeAOfAOgAOhAOiAOjAOkAOlAOmAOnAOoAOpAOqAOrAOsAOtAOuAOvAOwAOxAOyAOzAO1AO2AO3AO4AO5AO6AO7AO8AO9AO0APBAPCAPDAPEAPFAPGAPHAPIAPJAPKAPLAPMAPNAPOAPPAPQAPRAPSAPTAPUAPVAPWAPXAPYAPZAPaAPbAPcAPdAPeAPfAPgAPhAPiAPjAPkAPlAPmAPnAPoAPpAPqAPrAPsAPtAPuAPvAPwAPxAPyAPzAP1AP2AP3AP4AP5AP6AP7AP8AP9AP0AQBAQCAQDAQEAQFAQGAQHAQIAQJAQKAQLAQMAQNAQOAQPAQQAQRAQSAQTAQUAQVAQWAQXAQYAQZAQaAQbAQcAQdAQeAQfAQgAQhAQiAQjAQkAQlAQmAQnAQoAQpAQqAQrAQsAQtAQuAQvAQwAQxAQyAQzAQ1AQ2AQ3AQ4AQ5AQ6AQ7AQ8AQ9AQ0ARBARCARDAREARFARGARHARIARJARKARLARMARNAROARPARQARRARSARTARUARVARWARXARYARZARaARbARcARdAReARfARgARhARiARjARkARlARmARnARoARpARqARrARsARtARuARvARwARxARyARzAR1AR2AR3AR4AR5AR6AR7AR8AR9AR0ASBASCASDASEASFASGASHASIASJASKASLASMASNASOASPASQASRASSASTASUASVASWASXASYASZASaASbAScASdASeASfASgAShASiASjASkASlASmASnASoASpASqASrASsAStASuASvASwASxASyASzAS1AS2AS3AS4AS5AS6AS7AS8AS9AS0ATBATCATDATEATFATGATHATIATJATKATLATMATNATOATPATQATRATSATTATUATVATWATXATYATZATaATbATcATdATeATfATgAThATiATjATkATlATmATnAToATpATqATrATsATtATuATvATwATxATyATzAT1AT2AT3AT4AT5AT6AT7AT8AT9AT0AUBAUCAUDAUEAUFAUGAUHAUIAUJAUKAULAUMAUNAUOAUPAUQAURAUSAUTAUUAUVAUWAUXAUYAUZAUaAUbAUcAUdAUeAUfAUgAUhAUiAUjAUkAUlAUmAUnAUoAUpAUqAUrAUsAUtAUuAUvAUwAUxAUyAUzAU1AU2AU3AU4AU5AU6AU7AU8AU9AU0AVBAVCAVDAVEAVFAVGAVHAVIAVJAVKAVLAVMAVNAVOAVPAVQAVRAVSAVTAVUAVVAVWAVXAVYAVZAVaAVbAVcAVdAVeAVfAVgAVhAViAVjAVkAVlAVmAVnAVoAVpAVqAVrAVsAVtAVuAVvAVwAVxAVyAVzAV1AV2AV3AV4AV5AV6AV7AV8AV9AV0AWBAWCAWDAWEAWFAWGAWHAWIAWJAWKAWLAWMAWNAWOAWPAWQAWRAWSAWTAWUAWVAWWAWXAWYAWZAWaAWbAWcAWdAWeAWfAWgAWhAWiAWjAWkAWlAWmAWnAWoAWpAWqAWrAWsAWtAWuAWvAWwAWxAWyAWzAW1AW2AW3AW4AW5AW6AW7AW8AW9AW0AXBAXCAXDAXEAXFAXGAXHAXIAXJAXKAXLAXMAXNAXOAXPAXQAXRAXSAXTAXUAXVAXWAXXAXYAXZAXaAXbAXcAXdAXeAXfAXgAXhAXiAXjAXkAXlAXmAXnAXoAXpAXqAXrAXsAXtAXuAXvAXwAXxAXyAXzAX1AX2AX3AX4AX5AX6AX7AX8AX9AX0AYBAYCAYDAYEAYFAYGAYHAYIAYJAYKAYLAYMAYNAYOAYPAYQAYRAYSAYTAYUAYVAYWAYXAYYAYZAYaAYbAYcAYdAYeAYfAYgAYhAYiAYjAYkAYlAYmAYnAYoAYpAYqAYrAYsAYtAYuAYvAYwAYxAYyAYzAY1AY2AY3AY4AY5AY6AY7AY8AY9AY0AZBAZCAZDAZEAZFAZGAZHAZIAZJAZKAZLAZMAZNAZOAZPAZQAZRAZSAZTAZUAZVAZWAZXAZYAZZAZaAZbAZcAZdAZeAZfAZgAZhAZiAZjAZkAZlAZmAZnAZoAZpAZqAZrAZsAZtAZuAZvAZwAZxAZyAZzAZ1AZ2AZ3AZ4AZ5AZ6AZ7AZ8AZ9AZ0AaBAaCAaDAaEAaFAaGAaHAaIAaJAaKAaLAaMAaNAaOAaPAaQAaRAaSAaTAaUAaVAaWAaXAaYAaZAaaAabAacAadAaeAafAagAahAaiAajAakAalAamAanAaoAapAaqAarAasAatAauAavAawAaxAayAazAa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Aa0AbBAbCAbDAbEAbFAbGAbHAbIAbJAbKAbLAbMAbNAbOAbPAbQAbRAbSAbTAbUAbVAbWAbXAbYAbZAbaAbbAbcAbdAbeAbfAbgAbhAbiAbjAbkAblAbmAbnAboAbpAbqAbrAbsAbtAbuAbvAbwAbxAbyAbzAb1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ab0AcBAcCAcDAcEAcFAcGAcHAcIAcJAcKAcLAcMAcNAcOAcPAcQAcRAcSAcTAcUAcVAcWAcXAcYAcZAcaAcbAccAcdAceAcfAcgAchAciAcjAckAclAcmAcnAcoAcpAcqAcrAcsActAcuAcvAcwAcxAcyAczAc1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ac0AdBAdCAdDAdEAdFAdGAdHAdIAdJAdKAdLAdMAdNAdOAdPAdQAdRAdSAdTAdUAdVAdWAdXAdYAdZAdaAdbAdcAddAdeAdfAdgAdhAdiAdjAdkAdlAdmAdnAdoAdpAdqAdrAdsAdtAduAdvAdwAdxAdyAdzAd1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ad0AeBAeCAeDAeEAeFAeGAeHAeIAeJAeKAeLAeMAeNAeOAePAeQAeRAeSAeTAeUAeVAeWAeXAeYAeZAeaAebAecAedAeeAefAegAehAeiAejAekAelAemAenAeoAepAeqAerAesAetAeuAevAewAexAeyAezAe1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Ae0AfBAfCAfDAfEAfFAfGAfHAfIAfJAfKAfLAfMAfNAfOAfPAfQAfRAfSAfTAfUAfVAfWAfXAfYAfZAfaAfbAfcAfdAfeAffAfgAfhAfiAfjAfkAflAfmAfnAfoAfpAfqAfrAfsAftAfuAfvAfwAfxAfyAfzAf1Af2Af3Af4Af5Af6Af7Af8Af9Af0AgBAgCAgDAgEAgFAgGAgHAgIAgJAgKAgLAgMAgNAgOAgPAgQAgRAgSAgTAgUAgVAgWAgXAgYAgZAgaAgbAgcAgdAgeAgfAggAghAgiAgjAgkAglAgmAgnAgoAgpAgqAgrAgsAgtAguAgvAgwAgxAgyAgzAg1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ag0AhBAhCAhDAhEAhFAhGAhHAhIAhJAhKAhLAhMAhNAhOAhPAhQAhRAhSAhTAhUAhVAhWAhXAhYAhZAhaAhbAhcAhdAheAhfAhgAhhA
 EOF
 RUN
 
@@ -5136,6 +5140,31 @@ EOF
 EXPECT=<<EOF
 0x00000000  7b7d 2022 205c 2220 5c20 5c5c 200a 205c  {} " \" \ \\ . \
 0x00000010  6e20 2320 5c23 2024 205c 2400 0000 0000  n # \# $ \$.....
-[{"vaddr":0,"paddr":0,"ordinal":0,"size":28,"length":27,"section":"","type":"ascii","string":"{} \" \\\" \\ \\\\ \n \\n # \\# $ \\$"}]
+[{"vaddr":0,"paddr":0,"size":28,"length":27,"section":"","type":"ascii","string":"{} \" \\\" \\ \\\\ \n \\n # \\# $ \\$"}]
 EOF
 RUN
+
+NAME=izx show strings with xrefs
+FILE=bins/arm/elf/hello_world
+CMDS=<<EOF
+aaa
+izx
+EOF
+EXPECT=<<EOF
+     paddr      vaddr flag               len size section type  xref-from   string        
+------------------------------------------------------------------------------------------
+0x00000574 0x00000574 str.Hello_world     12   13 .rodata ascii 0x00000512  Hello world!
+0x00000494 0x00000494 register_tm_clones  10   11 .text   ascii entry.init0 \bH\tKxD\tJ{D
+EOF
+RUN
+
+NAME=izx show strings with xrefs in json
+FILE=bins/arm/elf/hello_world
+CMDS=<<EOF
+aaa
+izxj
+EOF
+EXPECT=<<EOF
+[{"vaddr":1396,"paddr":1396,"size":13,"length":12,"section":".rodata","type":"ascii","flag":"str.Hello_world","xref-from":"0x00000512","string":"Hello world!"},{"vaddr":1172,"paddr":1172,"size":11,"length":10,"section":".text","type":"ascii","flag":"register_tm_clones","xref-from":"entry.init0","string":"\bH\tKxD\tJ{D"}]
+EOF
+RUN
\ No newline at end of file
diff --git a/test/db/cmd/cmd_string b/test/db/cmd/cmd_string
index 046ee3a2a24..ad8bfb28ff9 100644
--- a/test/db/cmd/cmd_string
+++ b/test/db/cmd/cmd_string
@@ -2,89 +2,89 @@ NAME=izz
 FILE=bins/elf/analysis/hello-linux-x86_64
 CMDS=izz
 EXPECT=<<EOF
-nth      paddr      vaddr len size section   type    string                                 
---------------------------------------------------------------------------------------------
-  0 0x00000034 0x00400034   4   10           utf16le @8\b@
-  1 0x00000200 0x00400200  25   26 .interp   ascii   /lib/ld-linux-x86-64.so.2
-  2 0x000002e1 0x004002e1  14   15 .dynstr   ascii   __gmon_start__
-  3 0x000002f0 0x004002f0   9   10 .dynstr   ascii   libc.so.6
-  4 0x000002fa 0x004002fa   4    5 .dynstr   ascii   puts
-  5 0x000002ff 0x004002ff  17   18 .dynstr   ascii   __libc_start_main
-  6 0x00000311 0x00400311  11   12 .dynstr   ascii   GLIBC_2.2.5
-  7 0x00000588 0x00400588   4    4 .text     ascii   \$\bH
-  8 0x00000597 0x00400597   4    4 .text     ascii   l$ L
-  9 0x0000059c 0x0040059c   4    4 .text     ascii   t$(L
- 10 0x000005a1 0x004005a1   4    4 .text     ascii   |$0H
- 11 0x000005c4 0x004005c4  11   12 .rodata   ascii   Hello World
- 12 0x00000618 0x00400618   4    4 .eh_frame ascii   \e\f\a\b
- 13 0x00000648 0x00400648   4    4 .eh_frame ascii   \e\f\a\b
- 14 0x0000066f 0x0040066f   5    6 .eh_frame ascii   ;*3$"
- 15 0x00000691 0x00400691   4    5 .eh_frame ascii   P\f\a\b
- 16 0x00000910 ----------  16   17 .comment  ascii   GCC: (GNU) 4.7.2
- 17 0x00000922 ----------   7    8 .shstrtab ascii   .symtab
- 18 0x0000092a ----------   7    8 .shstrtab ascii   .strtab
- 19 0x00000932 ----------   9   10 .shstrtab ascii   .shstrtab
- 20 0x0000093c ----------   7    8 .shstrtab ascii   .interp
- 21 0x00000944 ----------  13   14 .shstrtab ascii   .note.ABI-tag
- 22 0x00000952 ----------  18   19 .shstrtab ascii   .note.gnu.build-id
- 23 0x00000965 ----------   9   10 .shstrtab ascii   .gnu.hash
- 24 0x0000096f ----------   7    8 .shstrtab ascii   .dynsym
- 25 0x00000977 ----------   7    8 .shstrtab ascii   .dynstr
- 26 0x0000097f ----------  12   13 .shstrtab ascii   .gnu.version
- 27 0x0000098c ----------  14   15 .shstrtab ascii   .gnu.version_r
- 28 0x0000099b ----------   9   10 .shstrtab ascii   .rela.dyn
- 29 0x000009a5 ----------   9   10 .shstrtab ascii   .rela.plt
- 30 0x000009af ----------   5    6 .shstrtab ascii   .init
- 31 0x000009b5 ----------   5    6 .shstrtab ascii   .text
- 32 0x000009bb ----------   5    6 .shstrtab ascii   .fini
- 33 0x000009c1 ----------   7    8 .shstrtab ascii   .rodata
- 34 0x000009c9 ----------  13   14 .shstrtab ascii   .eh_frame_hdr
- 35 0x000009d7 ----------   9   10 .shstrtab ascii   .eh_frame
- 36 0x000009e1 ----------  11   12 .shstrtab ascii   .init_array
- 37 0x000009ed ----------  11   12 .shstrtab ascii   .fini_array
- 38 0x000009f9 ----------   4    5 .shstrtab ascii   .jcr
- 39 0x000009fe ----------   8    9 .shstrtab ascii   .dynamic
- 40 0x00000a07 ----------   4    5 .shstrtab ascii   .got
- 41 0x00000a0c ----------   8    9 .shstrtab ascii   .got.plt
- 42 0x00000a15 ----------   5    6 .shstrtab ascii   .data
- 43 0x00000a1b ----------   4    5 .shstrtab ascii   .bss
- 44 0x00000a20 ----------   8    9 .shstrtab ascii   .comment
- 45 0x000017f9 ----------   6    7 .strtab   ascii   init.c
- 46 0x00001800 ----------  10   11 .strtab   ascii   crtstuff.c
- 47 0x0000180b ----------  12   13 .strtab   ascii   __JCR_LIST__
- 48 0x00001818 ----------  20   21 .strtab   ascii   deregister_tm_clones
- 49 0x0000182d ----------  18   19 .strtab   ascii   register_tm_clones
- 50 0x00001840 ----------  21   22 .strtab   ascii   __do_global_dtors_aux
- 51 0x00001856 ----------  14   15 .strtab   ascii   completed.6724
- 52 0x00001865 ----------  38   39 .strtab   ascii   __do_global_dtors_aux_fini_array_entry
- 53 0x0000188c ----------  11   12 .strtab   ascii   frame_dummy
- 54 0x00001898 ----------  30   31 .strtab   ascii   __frame_dummy_init_array_entry
- 55 0x000018b7 ----------   7    8 .strtab   ascii   hello.c
- 56 0x000018bf ----------  13   14 .strtab   ascii   __FRAME_END__
- 57 0x000018cd ----------  11   12 .strtab   ascii   __JCR_END__
- 58 0x000018d9 ----------  16   17 .strtab   ascii   __init_array_end
- 59 0x000018ea ----------   8    9 .strtab   ascii   _DYNAMIC
- 60 0x000018f3 ----------  18   19 .strtab   ascii   __init_array_start
- 61 0x00001906 ----------  21   22 .strtab   ascii   _GLOBAL_OFFSET_TABLE_
- 62 0x0000191c ----------  15   16 .strtab   ascii   __libc_csu_fini
- 63 0x0000192c ----------  27   28 .strtab   ascii   _ITM_deregisterTMCloneTable
- 64 0x00001948 ----------  10   11 .strtab   ascii   data_start
- 65 0x00001953 ----------  17   18 .strtab   ascii   puts@@GLIBC_2.2.5
- 66 0x00001965 ----------   6    7 .strtab   ascii   _edata
- 67 0x0000196c ----------   5    6 .strtab   ascii   _fini
- 68 0x00001972 ----------  30   31 .strtab   ascii   __libc_start_main@@GLIBC_2.2.5
- 69 0x00001991 ----------  12   13 .strtab   ascii   __data_start
- 70 0x0000199e ----------  14   15 .strtab   ascii   __gmon_start__
- 71 0x000019ad ----------  12   13 .strtab   ascii   __dso_handle
- 72 0x000019ba ----------  14   15 .strtab   ascii   _IO_stdin_used
- 73 0x000019c9 ----------  15   16 .strtab   ascii   __libc_csu_init
- 74 0x000019d9 ----------   4    5 .strtab   ascii   _end
- 75 0x000019de ----------   6    7 .strtab   ascii   _start
- 76 0x000019e5 ----------  11   12 .strtab   ascii   __bss_start
- 77 0x000019f1 ----------   4    5 .strtab   ascii   main
- 78 0x000019f6 ----------  19   20 .strtab   ascii   _Jv_RegisterClasses
- 79 0x00001a0a ----------  11   12 .strtab   ascii   __TMC_END__
- 80 0x00001a16 ----------  25   26 .strtab   ascii   _ITM_registerTMCloneTable
- 81 0x00001a30 ----------   5    6 .strtab   ascii   _init
+     paddr      vaddr len size section   type    string                                 
+----------------------------------------------------------------------------------------
+0x00000034 0x00400034   4   10           utf16le @8\b@
+0x00000200 0x00400200  25   26 .interp   ascii   /lib/ld-linux-x86-64.so.2
+0x000002e1 0x004002e1  14   15 .dynstr   ascii   __gmon_start__
+0x000002f0 0x004002f0   9   10 .dynstr   ascii   libc.so.6
+0x000002fa 0x004002fa   4    5 .dynstr   ascii   puts
+0x000002ff 0x004002ff  17   18 .dynstr   ascii   __libc_start_main
+0x00000311 0x00400311  11   12 .dynstr   ascii   GLIBC_2.2.5
+0x00000588 0x00400588   4    4 .text     ascii   \$\bH
+0x00000597 0x00400597   4    4 .text     ascii   l$ L
+0x0000059c 0x0040059c   4    4 .text     ascii   t$(L
+0x000005a1 0x004005a1   4    4 .text     ascii   |$0H
+0x000005c4 0x004005c4  11   12 .rodata   ascii   Hello World
+0x00000618 0x00400618   4    4 .eh_frame ascii   \e\f\a\b
+0x00000648 0x00400648   4    4 .eh_frame ascii   \e\f\a\b
+0x0000066f 0x0040066f   5    6 .eh_frame ascii   ;*3$"
+0x00000691 0x00400691   4    5 .eh_frame ascii   P\f\a\b
+0x00000910 ----------  16   17 .comment  ascii   GCC: (GNU) 4.7.2
+0x00000922 ----------   7    8 .shstrtab ascii   .symtab
+0x0000092a ----------   7    8 .shstrtab ascii   .strtab
+0x00000932 ----------   9   10 .shstrtab ascii   .shstrtab
+0x0000093c ----------   7    8 .shstrtab ascii   .interp
+0x00000944 ----------  13   14 .shstrtab ascii   .note.ABI-tag
+0x00000952 ----------  18   19 .shstrtab ascii   .note.gnu.build-id
+0x00000965 ----------   9   10 .shstrtab ascii   .gnu.hash
+0x0000096f ----------   7    8 .shstrtab ascii   .dynsym
+0x00000977 ----------   7    8 .shstrtab ascii   .dynstr
+0x0000097f ----------  12   13 .shstrtab ascii   .gnu.version
+0x0000098c ----------  14   15 .shstrtab ascii   .gnu.version_r
+0x0000099b ----------   9   10 .shstrtab ascii   .rela.dyn
+0x000009a5 ----------   9   10 .shstrtab ascii   .rela.plt
+0x000009af ----------   5    6 .shstrtab ascii   .init
+0x000009b5 ----------   5    6 .shstrtab ascii   .text
+0x000009bb ----------   5    6 .shstrtab ascii   .fini
+0x000009c1 ----------   7    8 .shstrtab ascii   .rodata
+0x000009c9 ----------  13   14 .shstrtab ascii   .eh_frame_hdr
+0x000009d7 ----------   9   10 .shstrtab ascii   .eh_frame
+0x000009e1 ----------  11   12 .shstrtab ascii   .init_array
+0x000009ed ----------  11   12 .shstrtab ascii   .fini_array
+0x000009f9 ----------   4    5 .shstrtab ascii   .jcr
+0x000009fe ----------   8    9 .shstrtab ascii   .dynamic
+0x00000a07 ----------   4    5 .shstrtab ascii   .got
+0x00000a0c ----------   8    9 .shstrtab ascii   .got.plt
+0x00000a15 ----------   5    6 .shstrtab ascii   .data
+0x00000a1b ----------   4    5 .shstrtab ascii   .bss
+0x00000a20 ----------   8    9 .shstrtab ascii   .comment
+0x000017f9 ----------   6    7 .strtab   ascii   init.c
+0x00001800 ----------  10   11 .strtab   ascii   crtstuff.c
+0x0000180b ----------  12   13 .strtab   ascii   __JCR_LIST__
+0x00001818 ----------  20   21 .strtab   ascii   deregister_tm_clones
+0x0000182d ----------  18   19 .strtab   ascii   register_tm_clones
+0x00001840 ----------  21   22 .strtab   ascii   __do_global_dtors_aux
+0x00001856 ----------  14   15 .strtab   ascii   completed.6724
+0x00001865 ----------  38   39 .strtab   ascii   __do_global_dtors_aux_fini_array_entry
+0x0000188c ----------  11   12 .strtab   ascii   frame_dummy
+0x00001898 ----------  30   31 .strtab   ascii   __frame_dummy_init_array_entry
+0x000018b7 ----------   7    8 .strtab   ascii   hello.c
+0x000018bf ----------  13   14 .strtab   ascii   __FRAME_END__
+0x000018cd ----------  11   12 .strtab   ascii   __JCR_END__
+0x000018d9 ----------  16   17 .strtab   ascii   __init_array_end
+0x000018ea ----------   8    9 .strtab   ascii   _DYNAMIC
+0x000018f3 ----------  18   19 .strtab   ascii   __init_array_start
+0x00001906 ----------  21   22 .strtab   ascii   _GLOBAL_OFFSET_TABLE_
+0x0000191c ----------  15   16 .strtab   ascii   __libc_csu_fini
+0x0000192c ----------  27   28 .strtab   ascii   _ITM_deregisterTMCloneTable
+0x00001948 ----------  10   11 .strtab   ascii   data_start
+0x00001953 ----------  17   18 .strtab   ascii   puts@@GLIBC_2.2.5
+0x00001965 ----------   6    7 .strtab   ascii   _edata
+0x0000196c ----------   5    6 .strtab   ascii   _fini
+0x00001972 ----------  30   31 .strtab   ascii   __libc_start_main@@GLIBC_2.2.5
+0x00001991 ----------  12   13 .strtab   ascii   __data_start
+0x0000199e ----------  14   15 .strtab   ascii   __gmon_start__
+0x000019ad ----------  12   13 .strtab   ascii   __dso_handle
+0x000019ba ----------  14   15 .strtab   ascii   _IO_stdin_used
+0x000019c9 ----------  15   16 .strtab   ascii   __libc_csu_init
+0x000019d9 ----------   4    5 .strtab   ascii   _end
+0x000019de ----------   6    7 .strtab   ascii   _start
+0x000019e5 ----------  11   12 .strtab   ascii   __bss_start
+0x000019f1 ----------   4    5 .strtab   ascii   main
+0x000019f6 ----------  19   20 .strtab   ascii   _Jv_RegisterClasses
+0x00001a0a ----------  11   12 .strtab   ascii   __TMC_END__
+0x00001a16 ----------  25   26 .strtab   ascii   _ITM_registerTMCloneTable
+0x00001a30 ----------   5    6 .strtab   ascii   _init
 EOF
 RUN
diff --git a/test/db/cmd/utf32 b/test/db/cmd/utf32
index 7ab36602d47..a2f590c9929 100644
--- a/test/db/cmd/utf32
+++ b/test/db/cmd/utf32
@@ -2,11 +2,11 @@ NAME=t/utf32
 FILE=bins/elf/crackme0x00b
 CMDS=iz
 EXPECT=<<EOF
-nth      paddr      vaddr len size section type    string           
---------------------------------------------------------------------
-  0 0x000005d0 0x080485d0  16   17 .rodata ascii   Enter password: 
-  1 0x000005e5 0x080485e5   9   10 .rodata ascii   Congrats!
-  2 0x000005ef 0x080485ef   6    7 .rodata ascii   Wrong!
-  3 0x00001040 0x0804a040   8   36 .data   utf32le w0wgreat
+     paddr      vaddr len size section type    string           
+----------------------------------------------------------------
+0x000005d0 0x080485d0  16   17 .rodata ascii   Enter password: 
+0x000005e5 0x080485e5   9   10 .rodata ascii   Congrats!
+0x000005ef 0x080485ef   6    7 .rodata ascii   Wrong!
+0x00001040 0x0804a040   8   36 .data   utf32le w0wgreat
 EOF
 RUN
diff --git a/test/db/cmd/write b/test/db/cmd/write
index 36697c4dd35..5cb5d7919b5 100644
--- a/test/db/cmd/write
+++ b/test/db/cmd/write
@@ -442,7 +442,7 @@ izz~0x0
 px 16~0x0
 EOF
 EXPECT=<<EOF
-  0 0x00000000 0x00000000  13   14         ascii \a\b\t\n\v\f\r\e\\@\a\r~
+0x00000000 0x00000000  13   14         ascii \a\b\t\n\v\f\r\e\\@\a\r~
 0x00000000  0708 090a 0b0c 0d1b 5c40 070d 7e00 0000  ........\@..~...
 EOF
 RUN
diff --git a/test/db/formats/elf/strings b/test/db/formats/elf/strings
index c4b7949acce..9e96aac4722 100644
--- a/test/db/formats/elf/strings
+++ b/test/db/formats/elf/strings
@@ -21,7 +21,7 @@ aar
 fl@F:strings
 EOF
 EXPECT=<<EOF
-  0 0x000005e8 0x004005e8  11   26 .rodata utf16le Hello World
+0x000005e8 0x004005e8  11   26 .rodata utf16le Hello World
 0x004005e8 26 str.Hello_World
 0x00400608 16 str.S
 |           0x0040052e      mov   qword [var_10h], str.Hello_World     ; 0x4005e8 ; u"\U0000feffHello World\U0000feff\n"
@@ -42,7 +42,7 @@ aar
 fl@F:strings
 EOF
 EXPECT=<<EOF
-  0 0x000005e8 0x004005e8  11   52 .rodata utf32le Hello World
+0x000005e8 0x004005e8  11   52 .rodata utf32le Hello World
 0x004005e8 52 str.Hello_World
 0x00400628 32 str.S
 |           0x0040052e      mov   qword [var_10h], str.Hello_World     ; 0x4005e8 ; U"\U0000feffHello World\U0000feff\n"
@@ -63,7 +63,7 @@ aar
 fl@F:strings
 EOF
 EXPECT=<<EOF
-  0 0x000005e4 0x004005e4  12   26 .rodata utf16le Hello World\n
+0x000005e4 0x004005e4  12   26 .rodata utf16le Hello World\n
 0x004005e4 26 str.Hello_World
 0x00400600 16 str.S
 |           0x0040052e      mov   qword [var_10h], str.Hello_World     ; 0x4005e4 ; u"Hello World\n"
@@ -84,7 +84,7 @@ aar
 fl@F:strings
 EOF
 EXPECT=<<EOF
-  0 0x000005e8 0x004005e8  12   52 .rodata utf32le Hello World\n
+0x000005e8 0x004005e8  12   52 .rodata utf32le Hello World\n
 0x004005e8 52 str.Hello_World
 0x00400620 32 str.S
 |           0x0040052e      mov   qword [var_10h], str.Hello_World     ; 0x4005e8 ; U"Hello World\n"
diff --git a/test/db/formats/java b/test/db/formats/java
index e47f258ffe5..6fb97eeb2f2 100644
--- a/test/db/formats/java
+++ b/test/db/formats/java
@@ -81,32 +81,32 @@ NAME=Check that strings are provided by Java class
 FILE=bins/java/HiKt.class
 CMDS=iz
 EXPECT=<<EOF
-nth      paddr      vaddr len size section             type  string                                                                                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-  1 0x0000000a 0x0000000a   4    4 class.constant_pool mutf8 HiKt
-  3 0x00000014 0x00000014  16   16 class.constant_pool mutf8 java/lang/Object
-  5 0x0000002a 0x0000002a   4    4 class.constant_pool mutf8 main
-  6 0x00000031 0x00000031  22   22 class.constant_pool mutf8 ([Ljava/lang/String;)V
-  7 0x0000004a 0x0000004a  35   35 class.constant_pool mutf8 Lorg/jetbrains/annotations/NotNull;
-  8 0x00000070 0x00000070   4    4 class.constant_pool mutf8 args
- 10 0x0000007a 0x0000007a  30   30 class.constant_pool mutf8 kotlin/jvm/internal/Intrinsics
- 12 0x0000009e 0x0000009e  23   23 class.constant_pool mutf8 checkParameterIsNotNull
- 13 0x000000b8 0x000000b8  39   39 class.constant_pool mutf8 (Ljava/lang/Object;Ljava/lang/String;)V
- 16 0x000000ec 0x000000ec  19   19 class.constant_pool mutf8 [Ljava/lang/String;
- 17 0x00000102 0x00000102  17   17 class.constant_pool mutf8 Lkotlin/Metadata;
- 18 0x00000116 0x00000116   2    2 class.constant_pool mutf8 mv
- 21 0x00000125 0x00000125   2    2 class.constant_pool mutf8 bv
- 23 0x0000012f 0x0000012f   1    1 class.constant_pool mutf8 k
- 25 0x00000138 0x00000138   2    2 class.constant_pool mutf8 d1
- 26 0x0000013d 0x0000013d  53   53 class.constant_pool mutf8 \u0000\u0012\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0011\n\u0002\u0010\u000e\n\u0000\u001a\u0019\u0010\u0000\u001a\u00020\u00012\f\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\u0002\u0010\u0005 blocks=Basic Latin,Latin-1 Supplement
- 27 0x00000175 0x00000175   2    2 class.constant_pool mutf8 d2
- 29 0x0000017d 0x0000017d   5    5 class.constant_pool mutf8 hi.kt
- 30 0x00000185 0x00000185   4    4 class.constant_pool mutf8 Code
- 31 0x0000018c 0x0000018c  18   18 class.constant_pool mutf8 LocalVariableTable
- 32 0x000001a1 0x000001a1  15   15 class.constant_pool mutf8 LineNumberTable
- 33 0x000001b3 0x000001b3  36   36 class.constant_pool mutf8 RuntimeInvisibleParameterAnnotations
- 34 0x000001da 0x000001da  10   10 class.constant_pool mutf8 SourceFile
- 35 0x000001e7 0x000001e7  25   25 class.constant_pool mutf8 RuntimeVisibleAnnotations
+     paddr      vaddr len size section             type  string                                                                                                                                                                                                                                                                  
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+0x0000000a 0x0000000a   4    4 class.constant_pool mutf8 HiKt
+0x00000014 0x00000014  16   16 class.constant_pool mutf8 java/lang/Object
+0x0000002a 0x0000002a   4    4 class.constant_pool mutf8 main
+0x00000031 0x00000031  22   22 class.constant_pool mutf8 ([Ljava/lang/String;)V
+0x0000004a 0x0000004a  35   35 class.constant_pool mutf8 Lorg/jetbrains/annotations/NotNull;
+0x00000070 0x00000070   4    4 class.constant_pool mutf8 args
+0x0000007a 0x0000007a  30   30 class.constant_pool mutf8 kotlin/jvm/internal/Intrinsics
+0x0000009e 0x0000009e  23   23 class.constant_pool mutf8 checkParameterIsNotNull
+0x000000b8 0x000000b8  39   39 class.constant_pool mutf8 (Ljava/lang/Object;Ljava/lang/String;)V
+0x000000ec 0x000000ec  19   19 class.constant_pool mutf8 [Ljava/lang/String;
+0x00000102 0x00000102  17   17 class.constant_pool mutf8 Lkotlin/Metadata;
+0x00000116 0x00000116   2    2 class.constant_pool mutf8 mv
+0x00000125 0x00000125   2    2 class.constant_pool mutf8 bv
+0x0000012f 0x0000012f   1    1 class.constant_pool mutf8 k
+0x00000138 0x00000138   2    2 class.constant_pool mutf8 d1
+0x0000013d 0x0000013d  53   53 class.constant_pool mutf8 \u0000\u0012\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0011\n\u0002\u0010\u000e\n\u0000\u001a\u0019\u0010\u0000\u001a\u00020\u00012\f\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\u0002\u0010\u0005 blocks=Basic Latin,Latin-1 Supplement
+0x00000175 0x00000175   2    2 class.constant_pool mutf8 d2
+0x0000017d 0x0000017d   5    5 class.constant_pool mutf8 hi.kt
+0x00000185 0x00000185   4    4 class.constant_pool mutf8 Code
+0x0000018c 0x0000018c  18   18 class.constant_pool mutf8 LocalVariableTable
+0x000001a1 0x000001a1  15   15 class.constant_pool mutf8 LineNumberTable
+0x000001b3 0x000001b3  36   36 class.constant_pool mutf8 RuntimeInvisibleParameterAnnotations
+0x000001da 0x000001da  10   10 class.constant_pool mutf8 SourceFile
+0x000001e7 0x000001e7  25   25 class.constant_pool mutf8 RuntimeVisibleAnnotations
 EOF
 RUN
 
diff --git a/test/db/formats/mdmp b/test/db/formats/mdmp
index 853e4eb737c..7700d8dffe1 100644
--- a/test/db/formats/mdmp
+++ b/test/db/formats/mdmp
@@ -329,25 +329,25 @@ iz~0x0033641a[1,2,3,4,5,6,7,8]
 iz~0x00337f88[1,2,3,4,5,6,7,8]
 EOF
 EXPECT=<<EOF
-0x0043cf24 0x77820352 4 10 C:_Windows_System32__tdll.dll utf16le Alpc
-0x0043cf2e 0x7782035c 4 10 C:_Windows_System32__tdll.dll utf16le Pool
-0x0043cf38 0x77820366 5 12 C:_Windows_System32__tdll.dll utf16le Timer
-0x00447247 0x7782a675 35 36 C:_Windows_System32__tdll.dll ascii RtlFindActivationContextSectionGuid
-0x0044726b 0x7782a699 37 38 C:_Windows_System32__tdll.dll ascii RtlFindActivationContextSectionString
-0x00447291 0x7782a6bf 26 27 C:_Windows_System32__tdll.dll ascii RtlFindCharInUnicodeString
-0x004472ac 0x7782a6da 16 17 C:_Windows_System32__tdll.dll ascii RtlFindClearBits
-0x0048acc8 0x7786e0f6 15 32 C:_Windows_System32__tdll.dll utf16le VS_VERSION_INFO
-0x0048b004 0x7786e432 11 24 C:_Windows_System32__tdll.dll utf16le VarFileInfo
-0x00168c38 0x7500d066 15 32 C:_Windows_System32_wow64.dll utf16le VS_VERSION_INFO
-0x00168f80 0x7500d3ae 11 24 C:_Windows_System32_wow64.dll utf16le VarFileInfo
-0x00128c38 0x74fc9066 15 32 C:_Windows_System32_wow64win.dll utf16le VS_VERSION_INFO
-0x00128fa8 0x74fc93d6 11 24 C:_Windows_System32_wow64win.dll utf16le VarFileInfo
-0x000cdc38 0x74f66066 15 32 C:_Windows_System32_wow64cpu.dll utf16le VS_VERSION_INFO
-0x000cdf84 0x74f663b2 11 24 C:_Windows_System32_wow64cpu.dll utf16le VarFileInfo
-0x00299106 0x77378534 11 12 C:_Windows_SysWOW64_kernel32.dll ascii _vfprintf_l
-0x001adff0 0x75d9341e 11 24 C:_Windows_SysWOW64_KERNELBASE.dll utf16le VarFileInfo
-0x0033641a 0x77415848 39 40 C:_Windows_SysWOW64_msvcrt.dll ascii Assertion failed:
-0x00337f88 0x774173b6 11 24 C:_Windows_SysWOW64_msvcrt.dll utf16le VarFileInfo
+0x77820352 4 10 C:_Windows_System32__tdll.dll utf16le Alpc
+0x7782035c 4 10 C:_Windows_System32__tdll.dll utf16le Pool
+0x77820366 5 12 C:_Windows_System32__tdll.dll utf16le Timer
+0x7782a675 35 36 C:_Windows_System32__tdll.dll ascii RtlFindActivationContextSectionGuid
+0x7782a699 37 38 C:_Windows_System32__tdll.dll ascii RtlFindActivationContextSectionString
+0x7782a6bf 26 27 C:_Windows_System32__tdll.dll ascii RtlFindCharInUnicodeString
+0x7782a6da 16 17 C:_Windows_System32__tdll.dll ascii RtlFindClearBits
+0x7786e0f6 15 32 C:_Windows_System32__tdll.dll utf16le VS_VERSION_INFO
+0x7786e432 11 24 C:_Windows_System32__tdll.dll utf16le VarFileInfo
+0x7500d066 15 32 C:_Windows_System32_wow64.dll utf16le VS_VERSION_INFO
+0x7500d3ae 11 24 C:_Windows_System32_wow64.dll utf16le VarFileInfo
+0x74fc9066 15 32 C:_Windows_System32_wow64win.dll utf16le VS_VERSION_INFO
+0x74fc93d6 11 24 C:_Windows_System32_wow64win.dll utf16le VarFileInfo
+0x74f66066 15 32 C:_Windows_System32_wow64cpu.dll utf16le VS_VERSION_INFO
+0x74f663b2 11 24 C:_Windows_System32_wow64cpu.dll utf16le VarFileInfo
+0x77378534 11 12 C:_Windows_SysWOW64_kernel32.dll ascii _vfprintf_l
+0x75d9341e 11 24 C:_Windows_SysWOW64_KERNELBASE.dll utf16le VarFileInfo
+0x77415848 39 40 C:_Windows_SysWOW64_msvcrt.dll ascii Assertion failed: %s
+0x774173b6 11 24 C:_Windows_SysWOW64_msvcrt.dll utf16le VarFileInfo
 EOF
 RUN
 
@@ -461,22 +461,22 @@ iz~0x00499cf5[1,2,3,4,5,6,7,8]
 iz~0x0049a045[1,2,3,4,5,6,7,8]
 EOF
 EXPECT=<<EOF
-0x002e2fe1 0x77820352 4 10 C:_Windows_System32__tdll.dll utf16le Alpc
-0x002e2feb 0x7782035c 4 10 C:_Windows_System32__tdll.dll utf16le Pool
-0x002e2ff5 0x77820366 5 12 C:_Windows_System32__tdll.dll utf16le Timer
-0x00330d85 0x7786e0f6 15 32 C:_Windows_System32__tdll.dll utf16le VS_VERSION_INFO
-0x003310c1 0x7786e432 11 24 C:_Windows_System32__tdll.dll utf16le VarFileInfo
-0x00161a37 0x7759dda8 7 16 C:_Windows_System32_kernel32.dll utf16le win.ini
-0x00161c7f 0x7759dff0 20 42 C:_Windows_System32_kernel32.dll utf16le \Classes\Wow6432Node
-0x00161dbf 0x7759e130 45 92 C:_Windows_System32_kernel32.dll utf16le \REGISTRY\USER\*\SOFTWARE\Classes\Wow6432Node
-0x001d9d45 0x776160b6 15 32 C:_Windows_System32_kernel32.dll utf16le VS_VERSION_INFO
-0x001da0a5 0x77616416 11 24 C:_Windows_System32_kernel32.dll utf16le VarFileInfo
-0x003fad45 0x7fefd5080b6 15 32 C:_Windows_System32_KERNELBASE.dll utf16le VS_VERSION_INFO
-0x003fb0ad 0x7fefd50841e 11 24 C:_Windows_System32_KERNELBASE.dll utf16le VarFileInfo
-0x00480857 0x7fefdb33bc8 4 10 C:_Windows_System32_msvcrt.dll utf16le PATH
-0x004808c7 0x7fefdb33c38 10 22 C:_Windows_System32_msvcrt.dll utf16le SystemRoot
-0x00499cf5 0x7fefdb4d066 15 32 C:_Windows_System32_msvcrt.dll utf16le VS_VERSION_INFO
-0x0049a045 0x7fefdb4d3b6 11 24 C:_Windows_System32_msvcrt.dll utf16le VarFileInfo
+0x77820352 4 10 C:_Windows_System32__tdll.dll utf16le Alpc
+0x7782035c 4 10 C:_Windows_System32__tdll.dll utf16le Pool
+0x77820366 5 12 C:_Windows_System32__tdll.dll utf16le Timer
+0x7786e0f6 15 32 C:_Windows_System32__tdll.dll utf16le VS_VERSION_INFO
+0x7786e432 11 24 C:_Windows_System32__tdll.dll utf16le VarFileInfo
+0x7759dda8 7 16 C:_Windows_System32_kernel32.dll utf16le win.ini
+0x7759dff0 20 42 C:_Windows_System32_kernel32.dll utf16le \Classes\Wow6432Node
+0x7759e130 45 92 C:_Windows_System32_kernel32.dll utf16le \REGISTRY\USER\*\SOFTWARE\Classes\Wow6432Node
+0x776160b6 15 32 C:_Windows_System32_kernel32.dll utf16le VS_VERSION_INFO
+0x77616416 11 24 C:_Windows_System32_kernel32.dll utf16le VarFileInfo
+0x7fefd5080b6 15 32 C:_Windows_System32_KERNELBASE.dll utf16le VS_VERSION_INFO
+0x7fefd50841e 11 24 C:_Windows_System32_KERNELBASE.dll utf16le VarFileInfo
+0x7fefdb33bc8 4 10 C:_Windows_System32_msvcrt.dll utf16le PATH
+0x7fefdb33c38 10 22 C:_Windows_System32_msvcrt.dll utf16le SystemRoot
+0x7fefdb4d066 15 32 C:_Windows_System32_msvcrt.dll utf16le VS_VERSION_INFO
+0x7fefdb4d3b6 11 24 C:_Windows_System32_msvcrt.dll utf16le VarFileInfo
 EOF
 RUN
 
diff --git a/test/db/formats/smd b/test/db/formats/smd
index 729698305c7..9aec8d7a45e 100644
--- a/test/db/formats/smd
+++ b/test/db/formats/smd
@@ -169,104 +169,104 @@ e bin.str.filter=U
 izz
 EOF
 EXPECT=<<EOF
-nth      paddr      vaddr len size section type  string                                                                                                                                                           
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-  0 0x00000100 0x00000100 160  161         ascii SEGA GENESIS    (C)SEGA 1995.MARCART. BRADESCO                                  CART. BRADESCO                                  GM 00000001-00W`J               
-  4 0x00005d18 0x00005d18  12   13         ascii BEBBBB|\t~\t0\a
-  6 0x00007974 0x00007974  24   25         ascii AT&FV0B0+FCLASS=1;+FF=1\r
-  7 0x00007ad9 0x00007ad9  15   16         ascii NMEMORIA CHEIA.
-  8 0x00007ae9 0x00007ae9  13   14         ascii SEM PORTADORA
-  9 0x00007af7 0x00007af7  27   28         ascii INICIANDO TESTE AGUARDE !!!
- 10 0x00007b13 0x00007b13  13   14         ascii LINHA OCUPADA
- 11 0x00007b21 0x00007b21  10   11         ascii NAO ATENDE
- 12 0x00007b2c 0x00007b2c  16   17         ascii SEM TOM DISCAGEM
- 13 0x00007b3d 0x00007b3d  18   19         ascii DISCANDO NOVAMENTE
- 14 0x00007b50 0x00007b50  12   13         ascii CONEXAO OK !
- 15 0x00007b5d 0x00007b5d  13   14         ascii OPER ABORTADA
- 16 0x00007b6b 0x00007b6b  19   20         ascii ERRO NOVA TENTATIVA
- 17 0x00007b7f 0x00007b7f  19   20         ascii LINHA DESCONECTADA.
- 18 0x00007ba3 0x00007ba3  19   20         ascii ERRO DE COMUNICACAO
- 19 0x00007bb7 0x00007bb7  16   17         ascii DADOS INCORRETOS
- 20 0x00007bc8 0x00007bc8  17   18         ascii ENVIANDO DADOS...
- 21 0x00007bda 0x00007bda  15   16         ascii RECEBENDO DADOS
- 22 0x00007bea 0x00007bea  18   19         ascii FALHA 3 TENTATIVAS
- 23 0x00007bfd 0x00007bfd  19   20         ascii ERRO NOVA TENTATIVA
- 24 0x00007c11 0x00007c11  13   14         ascii TIMEOUT DADOS
- 25 0x00007c1f 0x00007c1f  14   15         ascii FINAL RECEPCAO
- 26 0x00007c33 0x00007c33  16   17         ascii ERRO DE CHECKSUM
- 27 0x00007c44 0x00007c44  18   19         ascii TRANSACAO INEXISTE
- 28 0x00007c57 0x00007c57  23   24         ascii DATA,HIST.,DOCTO,VALOR,
- 29 0x00007c74 0x00007c74  15   16         ascii SALDO VINCULADO
- 30 0x00007c8d 0x00007c8d  45   46         ascii SALDO DISPONIVEL,SALDO VINCULADO,SALDO TOTAL,
- 31 0x00007ccd 0x00007ccd  14   15         ascii  ERRO CLASS 1 
- 33 0x00007cf3 0x00007cf3  15   16         ascii SALDO ATUAL    
- 34 0x00007d03 0x00007d03  64   65         ascii DATA,SALDO TOTAL,DATA,SALDO VINCULADO,DATA,SALDO C/L PROGRAMADO,
- 35 0x00007d44 0x00007d44  20   21         ascii FALHA DE COMUNICACAO
- 36 0x00007d59 0x00007d59  15   16         ascii HOST INOPERANTE
- 37 0x00007d69 0x00007d69  13   14         ascii TIMEOUT  HOST
- 38 0x00007d77 0x00007d77  19   20         ascii ERRO DE COMUNICACAO
- 39 0x00007d8b 0x00007d8b  18   19         ascii AGENCIA FORA DO AR
- 40 0x00007d9e 0x00007d9e  21   22         ascii TRANSMISSAO CANCELADA
- 41 0x00007db4 0x00007db4  17   18         ascii SENHA NAO GRAVADA
- 42 0x00007dc6 0x00007dc6  14   15         ascii SENHA INVALIDA
- 43 0x00007dd5 0x00007dd5  13   14         ascii C/C BLOQUEADA
- 44 0x00007de3 0x00007de3  22   23         ascii EXTRATO NAO ENCONTRADO
- 45 0x00007dfa 0x00007dfa  15   16         ascii SEM LANCAMENTOS
- 46 0x00007e0a 0x00007e0a  26   27         ascii DIA DE VENCIMENTO INVALIDO
- 47 0x00007e25 0x00007e25  23   24         ascii MES DO EXTRATO INVALIDO
- 48 0x00007e3d 0x00007e3d  14   15         ascii FIM DE EXTRATO
- 49 0x00007e4c 0x00007e4c  17   18         ascii AGENCIA INCORRETA
- 50 0x00007e5e 0x00007e5e  23   24         ascii CADASTRO EM ATUALIZACAO
- 51 0x00007e76 0x00007e76  17   18         ascii CONTA INEXISTENTE
- 52 0x00007e88 0x00007e88  19   20         ascii EXTRATO INEXISTENTE
- 53 0x00007eaa 0x00007eaa  17   18         ascii CARTAO DE CREDITO
- 54 0x00007ebc 0x00007ebc  19   20         ascii LANCAMENTOS FUTUROS
- 55 0x00007ed0 0x00007ed0  24   25         ascii LANCAMENTOS DIA ANTERIOR
- 56 0x00007ee9 0x00007ee9  14   15         ascii  F.A.F.  FACIL
- 57 0x00007ef8 0x00007ef8  12   13         ascii AT+FCLASS=1\r
- 58 0x00007f23 0x00007f23  10   11         ascii AT+FTM=48\r
- 59 0x00007f2e 0x00007f2e  10   11         ascii AT+FTM=24\r
- 60 0x00007f39 0x00007f39  10   11         ascii AT+FRM=48\r
- 61 0x00007f44 0x00007f44  10   11         ascii AT+FRM=24\r
- 62 0x00007f4f 0x00007f4f  12   13         ascii DIS FRAME OK
- 63 0x00007f5c 0x00007f5c  13   14         ascii ERRO RX FRAME
- 64 0x00007f8a 0x00007f8a  14   15         ascii WAIT DIS FRAME
- 65 0x00007f99 0x00007f99  14   15         ascii ERRO:FRAME DIS
- 66 0x00007fa8 0x00007fa8  10   11         ascii ERRO FTH=3
- 67 0x00007fbc 0x00007fbc  17   18         ascii <TCF> TRAINING...
- 68 0x00007fd4 0x00007fd4  11   12         ascii RECEPCAO...
- 69 0x0000803b 0x0000803b  12   13         ascii ERRO PROG RX
- 70 0x00008048 0x00008048  18   19         ascii RECEBENDO DADOS...
- 71 0x0000806a 0x0000806a  16   17         ascii TRAINING 4800...
- 72 0x0000807b 0x0000807b  16   17         ascii TRAINING 2400...
- 73 0x0000808c 0x0000808c  11   12         ascii TRAINING OK
- 74 0x00008098 0x00008098  13   14         ascii ERRO TRAINING
- 75 0x000080c8 0x000080c8  17   18         ascii FALHA:COMUNICACAO
- 76 0x000080f8 0x000080f8  10   11         ascii ERRO BLOCO
- 77 0x00008103 0x00008103  25   26         ascii CONTA OU DIGITO INCORRETO
- 78 0x0000811d 0x0000811d  27   28         ascii CODIGO DA AGENCIA INCORRETO
- 79 0x00008139 0x00008139  35   36         ascii DATA DO CARTAO DE CREDITO INCORRETA
- 80 0x0000818c 0x0000818c  52   53         ascii 001002003005010011004020021022030031999040041042043N
- 87 0x0000a9bf 0x0000a9bf  12   13         ascii IJKLMNOPQRST
-123 0x0000dfff 0x0000dfff  43   44         ascii >?@ABCDEFGHIJKLMNOPQQRSTULKJIHGFEDCBA@?>VWX
-126 0x0000e2ba 0x0000e2ba  11   12         ascii CDEFGHIJKL*
-127 0x0000e2ce 0x0000e2ce  11   12         ascii MNOPQORSPT*
-132 0x0000e44d 0x0000e44d  21   22         ascii AB,CDEFGHIJKLMNOPQRST
-133 0x0000e463 0x0000e463  14   15         ascii QUVWXWYZ[\]^_R
-140 0x0000e707 0x0000e707  25   26         ascii #<=>?@ABC)(D\aEFGHIJKLMNOP
-141 0x0000e723 0x0000e723  12   13         ascii #QRSTUVWRXYZ
-143 0x0000e8b8 0x0000e8b8  15   16         ascii 6789:;<=>?@ABCD
-152 0x0000ef10 0x0000ef10  12   13         ascii >?@>ABCDEF@G
-153 0x0000ef1e 0x0000ef1e  12   13         ascii HIJKLJMNOPQR
-154 0x0000ef2c 0x0000ef2c  12   13         ascii STUVWUXYZ[\]
-170 0x000166ae 0x000166ae  16   17         ascii SUSU355355S53553
-171 0x00016947 0x00016947  13   14         ascii 5S5S3UU355U53
-172 0x00016963 0x00016963  10   11         ascii U3UU5SS3S3
-200 0x00017d0e 0x00017d0e  14   15         ascii DEAQDEATDEATDE
-243 0x000194cc 0x000194cc  14   15         ascii DEAQDEATDEATDE
-283 0x0001acde 0x0001acde  14   15         ascii DEAQDEATDEATDE
-325 0x0001c542 0x0001c542  14   15         ascii DEAQDEATDEATDE
-369 0x0001d8aa 0x0001d8aa  12   13         ascii DDEQTDDEUUUU
-394 0x0002036c 0x0002036c  63   64         ascii 3331333333333333DDDADDDADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDADDDADDD
+     paddr      vaddr len size section type  string                                                                                                                                                           
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+0x00000100 0x00000100 160  161         ascii SEGA GENESIS    (C)SEGA 1995.MARCART. BRADESCO                                  CART. BRADESCO                                  GM 00000001-00W`J               
+0x00005d18 0x00005d18  12   13         ascii BEBBBB|\t~\t0\a
+0x00007974 0x00007974  24   25         ascii AT&FV0B0+FCLASS=1;+FF=1\r
+0x00007ad9 0x00007ad9  15   16         ascii NMEMORIA CHEIA.
+0x00007ae9 0x00007ae9  13   14         ascii SEM PORTADORA
+0x00007af7 0x00007af7  27   28         ascii INICIANDO TESTE AGUARDE !!!
+0x00007b13 0x00007b13  13   14         ascii LINHA OCUPADA
+0x00007b21 0x00007b21  10   11         ascii NAO ATENDE
+0x00007b2c 0x00007b2c  16   17         ascii SEM TOM DISCAGEM
+0x00007b3d 0x00007b3d  18   19         ascii DISCANDO NOVAMENTE
+0x00007b50 0x00007b50  12   13         ascii CONEXAO OK !
+0x00007b5d 0x00007b5d  13   14         ascii OPER ABORTADA
+0x00007b6b 0x00007b6b  19   20         ascii ERRO NOVA TENTATIVA
+0x00007b7f 0x00007b7f  19   20         ascii LINHA DESCONECTADA.
+0x00007ba3 0x00007ba3  19   20         ascii ERRO DE COMUNICACAO
+0x00007bb7 0x00007bb7  16   17         ascii DADOS INCORRETOS
+0x00007bc8 0x00007bc8  17   18         ascii ENVIANDO DADOS...
+0x00007bda 0x00007bda  15   16         ascii RECEBENDO DADOS
+0x00007bea 0x00007bea  18   19         ascii FALHA 3 TENTATIVAS
+0x00007bfd 0x00007bfd  19   20         ascii ERRO NOVA TENTATIVA
+0x00007c11 0x00007c11  13   14         ascii TIMEOUT DADOS
+0x00007c1f 0x00007c1f  14   15         ascii FINAL RECEPCAO
+0x00007c33 0x00007c33  16   17         ascii ERRO DE CHECKSUM
+0x00007c44 0x00007c44  18   19         ascii TRANSACAO INEXISTE
+0x00007c57 0x00007c57  23   24         ascii DATA,HIST.,DOCTO,VALOR,
+0x00007c74 0x00007c74  15   16         ascii SALDO VINCULADO
+0x00007c8d 0x00007c8d  45   46         ascii SALDO DISPONIVEL,SALDO VINCULADO,SALDO TOTAL,
+0x00007ccd 0x00007ccd  14   15         ascii  ERRO CLASS 1 
+0x00007cf3 0x00007cf3  15   16         ascii SALDO ATUAL    
+0x00007d03 0x00007d03  64   65         ascii DATA,SALDO TOTAL,DATA,SALDO VINCULADO,DATA,SALDO C/L PROGRAMADO,
+0x00007d44 0x00007d44  20   21         ascii FALHA DE COMUNICACAO
+0x00007d59 0x00007d59  15   16         ascii HOST INOPERANTE
+0x00007d69 0x00007d69  13   14         ascii TIMEOUT  HOST
+0x00007d77 0x00007d77  19   20         ascii ERRO DE COMUNICACAO
+0x00007d8b 0x00007d8b  18   19         ascii AGENCIA FORA DO AR
+0x00007d9e 0x00007d9e  21   22         ascii TRANSMISSAO CANCELADA
+0x00007db4 0x00007db4  17   18         ascii SENHA NAO GRAVADA
+0x00007dc6 0x00007dc6  14   15         ascii SENHA INVALIDA
+0x00007dd5 0x00007dd5  13   14         ascii C/C BLOQUEADA
+0x00007de3 0x00007de3  22   23         ascii EXTRATO NAO ENCONTRADO
+0x00007dfa 0x00007dfa  15   16         ascii SEM LANCAMENTOS
+0x00007e0a 0x00007e0a  26   27         ascii DIA DE VENCIMENTO INVALIDO
+0x00007e25 0x00007e25  23   24         ascii MES DO EXTRATO INVALIDO
+0x00007e3d 0x00007e3d  14   15         ascii FIM DE EXTRATO
+0x00007e4c 0x00007e4c  17   18         ascii AGENCIA INCORRETA
+0x00007e5e 0x00007e5e  23   24         ascii CADASTRO EM ATUALIZACAO
+0x00007e76 0x00007e76  17   18         ascii CONTA INEXISTENTE
+0x00007e88 0x00007e88  19   20         ascii EXTRATO INEXISTENTE
+0x00007eaa 0x00007eaa  17   18         ascii CARTAO DE CREDITO
+0x00007ebc 0x00007ebc  19   20         ascii LANCAMENTOS FUTUROS
+0x00007ed0 0x00007ed0  24   25         ascii LANCAMENTOS DIA ANTERIOR
+0x00007ee9 0x00007ee9  14   15         ascii  F.A.F.  FACIL
+0x00007ef8 0x00007ef8  12   13         ascii AT+FCLASS=1\r
+0x00007f23 0x00007f23  10   11         ascii AT+FTM=48\r
+0x00007f2e 0x00007f2e  10   11         ascii AT+FTM=24\r
+0x00007f39 0x00007f39  10   11         ascii AT+FRM=48\r
+0x00007f44 0x00007f44  10   11         ascii AT+FRM=24\r
+0x00007f4f 0x00007f4f  12   13         ascii DIS FRAME OK
+0x00007f5c 0x00007f5c  13   14         ascii ERRO RX FRAME
+0x00007f8a 0x00007f8a  14   15         ascii WAIT DIS FRAME
+0x00007f99 0x00007f99  14   15         ascii ERRO:FRAME DIS
+0x00007fa8 0x00007fa8  10   11         ascii ERRO FTH=3
+0x00007fbc 0x00007fbc  17   18         ascii <TCF> TRAINING...
+0x00007fd4 0x00007fd4  11   12         ascii RECEPCAO...
+0x0000803b 0x0000803b  12   13         ascii ERRO PROG RX
+0x00008048 0x00008048  18   19         ascii RECEBENDO DADOS...
+0x0000806a 0x0000806a  16   17         ascii TRAINING 4800...
+0x0000807b 0x0000807b  16   17         ascii TRAINING 2400...
+0x0000808c 0x0000808c  11   12         ascii TRAINING OK
+0x00008098 0x00008098  13   14         ascii ERRO TRAINING
+0x000080c8 0x000080c8  17   18         ascii FALHA:COMUNICACAO
+0x000080f8 0x000080f8  10   11         ascii ERRO BLOCO
+0x00008103 0x00008103  25   26         ascii CONTA OU DIGITO INCORRETO
+0x0000811d 0x0000811d  27   28         ascii CODIGO DA AGENCIA INCORRETO
+0x00008139 0x00008139  35   36         ascii DATA DO CARTAO DE CREDITO INCORRETA
+0x0000818c 0x0000818c  52   53         ascii 001002003005010011004020021022030031999040041042043N
+0x0000a9bf 0x0000a9bf  12   13         ascii IJKLMNOPQRST
+0x0000dfff 0x0000dfff  43   44         ascii >?@ABCDEFGHIJKLMNOPQQRSTULKJIHGFEDCBA@?>VWX
+0x0000e2ba 0x0000e2ba  11   12         ascii CDEFGHIJKL*
+0x0000e2ce 0x0000e2ce  11   12         ascii MNOPQORSPT*
+0x0000e44d 0x0000e44d  21   22         ascii AB,CDEFGHIJKLMNOPQRST
+0x0000e463 0x0000e463  14   15         ascii QUVWXWYZ[\]^_R
+0x0000e707 0x0000e707  25   26         ascii #<=>?@ABC)(D\aEFGHIJKLMNOP
+0x0000e723 0x0000e723  12   13         ascii #QRSTUVWRXYZ
+0x0000e8b8 0x0000e8b8  15   16         ascii 6789:;<=>?@ABCD
+0x0000ef10 0x0000ef10  12   13         ascii >?@>ABCDEF@G
+0x0000ef1e 0x0000ef1e  12   13         ascii HIJKLJMNOPQR
+0x0000ef2c 0x0000ef2c  12   13         ascii STUVWUXYZ[\]
+0x000166ae 0x000166ae  16   17         ascii SUSU355355S53553
+0x00016947 0x00016947  13   14         ascii 5S5S3UU355U53
+0x00016963 0x00016963  10   11         ascii U3UU5SS3S3
+0x00017d0e 0x00017d0e  14   15         ascii DEAQDEATDEATDE
+0x000194cc 0x000194cc  14   15         ascii DEAQDEATDEATDE
+0x0001acde 0x0001acde  14   15         ascii DEAQDEATDEATDE
+0x0001c542 0x0001c542  14   15         ascii DEAQDEATDEATDE
+0x0001d8aa 0x0001d8aa  12   13         ascii DDEQTDDEUUUU
+0x0002036c 0x0002036c  63   64         ascii 3331333333333333DDDADDDADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDADDDADDD
 EOF
 RUN
diff --git a/test/db/tools/rz_bin b/test/db/tools/rz_bin
index 4a5341f4568..123dc1aad04 100644
--- a/test/db/tools/rz_bin
+++ b/test/db/tools/rz_bin
@@ -187,7 +187,7 @@ NAME=rz-bin -zz pe
 FILE=bins/pe/ioli/w32/crackme0x00.exe
 CMDS=!rz-bin -zz ${RZ_FILE} | grep "Password:"
 EXPECT=<<EOF
-086 0x00002619 0x00404019 10 11 (.rdata) ascii Password: 
+0x00002619 0x00404019 10 11 (.rdata) ascii Password: 
 EOF
 RUN
 
@@ -586,9 +586,9 @@ nth      paddr      vaddr bind   type   size lib name
 0x00000000  0x34 0x08048000  0x34    0x0 -rw- ehdr
 
 [Strings]
-nth      paddr      vaddr len size section type  string       
---------------------------------------------------------------
-  0 0x000004b0 0x080484b0  12   13 .rodata ascii Hello world!
+     paddr      vaddr len size section type  string       
+----------------------------------------------------------
+0x000004b0 0x080484b0  12   13 .rodata ascii Hello world!
 
 [Main]
      vaddr      paddr 
@@ -1244,7 +1244,7 @@ FILE=bins/mz/broken.exe
 CMDS=!rz-bin -zzj ${RZ_FILE} ; echo ""
 EXPECT=<<EOF
 {}
-[{"vaddr":77,"paddr":77,"ordinal":0,"size":45,"length":44,"section":"","type":"ascii","string":"!This program cannot be run in DOS mode.\r\r\n$"},{"vaddr":155,"paddr":155,"ordinal":1,"size":6,"length":5,"section":"","type":"ascii","string":"Q\fb.Q"},{"vaddr":189,"paddr":189,"ordinal":2,"size":4,"length":4,"section":"","type":"ascii","string":"b.Q{"},{"vaddr":205,"paddr":205,"ordinal":3,"size":7,"length":7,"section":"","type":"ascii","string":"b.Q4<*P"},{"vaddr":213,"paddr":213,"ordinal":4,"size":5,"length":5,"section":"","type":"ascii","string":"b.Q4<"},{"vaddr":221,"paddr":221,"ordinal":5,"size":7,"length":7,"section":"","type":"ascii","string":"b.Q4<,P"},{"vaddr":229,"paddr":229,"ordinal":6,"size":7,"length":7,"section":"","type":"ascii","string":"b.QRich"},{"vaddr":241,"paddr":241,"ordinal":7,"size":30,"length":29,"section":"","type":"ascii","string":"https://malwarec2.com/drd.exe"}]
+[{"vaddr":77,"paddr":77,"size":45,"length":44,"section":"","type":"ascii","string":"!This program cannot be run in DOS mode.\r\r\n$"},{"vaddr":155,"paddr":155,"size":6,"length":5,"section":"","type":"ascii","string":"Q\fb.Q"},{"vaddr":189,"paddr":189,"size":4,"length":4,"section":"","type":"ascii","string":"b.Q{"},{"vaddr":205,"paddr":205,"size":7,"length":7,"section":"","type":"ascii","string":"b.Q4<*P"},{"vaddr":213,"paddr":213,"size":5,"length":5,"section":"","type":"ascii","string":"b.Q4<"},{"vaddr":221,"paddr":221,"size":7,"length":7,"section":"","type":"ascii","string":"b.Q4<,P"},{"vaddr":229,"paddr":229,"size":7,"length":7,"section":"","type":"ascii","string":"b.QRich"},{"vaddr":241,"paddr":241,"size":30,"length":29,"section":"","type":"ascii","string":"https://malwarec2.com/drd.exe"}]
 EOF
 RUN
 
@@ -1253,11 +1253,11 @@ FILE=bins/elf/smallstrings.elf
 CMDS=!rz-bin -z -N2 ${RZ_FILE}
 EXPECT=<<EOF
 [Strings]
-nth      paddr      vaddr len size section type  string 
---------------------------------------------------------
-  0 0x00002006 0x00002006   2    3 .rodata ascii 22
-  1 0x00002009 0x00002009   3    4 .rodata ascii 333
-  2 0x0000200d 0x0000200d   4    5 .rodata ascii 4444
+     paddr      vaddr len size section type  string 
+----------------------------------------------------
+0x00002006 0x00002006   2    3 .rodata ascii 22
+0x00002009 0x00002009   3    4 .rodata ascii 333
+0x0000200d 0x0000200d   4    5 .rodata ascii 4444
 
 EOF
 RUN
@@ -1267,8 +1267,8 @@ FILE=bins/cmd/search/string_encodings/Latin-Lipsum.ascii
 CMDS=!rz-bin -z -N ":<dH" ${RZ_FILE}
 EXPECT=<<EOF
 [Strings]
-nth paddr vaddr len size section type string 
----------------------------------------------
+paddr vaddr len size section type string 
+-----------------------------------------
 
 EOF
 EXPECT_ERR=


Reviews:
user: login: notxvilka
body: it affects all `iz` commands but in reality should affect only `izx` one
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-04T16:38:12Z
user: login: wargio
state: APPROVED
author_association: MEMBER
submitted_at: 2025-05-11T08:35:13Z
user: login: notxvilka
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-11T18:19:20Z
user: login: Rot127
body: Just this nitpick. Otherwise lgtm

state: CHANGES_REQUESTED
author_association: MEMBER
submitted_at: 2025-05-13T11:38:28Z
user: login: notxvilka
body: You forgot one more:
```
../librz/bin/format/dex/dex.c:751:7: error: variable 'ordinal' set but not used [-Werror,-Wunused-but-set-variable]
  751 |         ut32 ordinal = 0;
      |              ^
1 error generated.
```
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-14T16:46:03Z
user: login: notxvilka
body: An improvement already, but for `xref-from` maybe it make sense to show the function name/flag if present, e.g. the result of `fd`. WDYT?
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-15T04:06:20Z
user: login: wargio
state: APPROVED
author_association: MEMBER
submitted_at: 2025-05-15T15:22:30Z
user: login: Rot127
body: Looks good! Only those three little things.
state: CHANGES_REQUESTED
author_association: MEMBER
submitted_at: 2025-05-16T14:54:29Z
user: login: notxvilka
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-22T04:15:01Z
user: login: Rot127
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-22T11:05:05Z
user: login: PeiweiHu
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-22T12:06:29Z
user: login: notxvilka
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-22T14:16:15Z
user: login: Rot127
state: APPROVED
author_association: MEMBER
submitted_at: 2025-05-23T13:46:12Z

Review comments:
diff_hunk: @@ -2705,6 +2709,40 @@ static bool strings_print(RzCore *core, RzCmdStateOutput *state, const RzPVector
 		char quiet_val[20];
 		ut64 paddr, vaddr;
 		paddr = string->paddr;
+
+		char *xref_address_str = NULL;
+		char *flag_name_str = NULL;
+		if (print_xref) {
+			// search xrefs to string
+			RzList *xrefs = rz_analysis_xrefs_get_to(core->analysis, paddr);
+			RzAnalysisXRef *xref;
+			RzListIter *xrefIter;
+			RzStrBuf *xref_addresses = rz_strbuf_new("");
+			rz_list_foreach (xrefs, xrefIter, xref) {
+				char addr_str[32];
+				snprintf(addr_str, sizeof(addr_str), "0x%08" PFMT64x, xref->from);
path: librz/core/cbin.c
user: login: Rot127
body: ```suggestion
				rz_strf(addr_str, "0x%08" PFMT64x, xref->from);
```
created_at: 2025-05-13T11:37:07Z
author_association: MEMBER
diff_hunk: @@ -2705,6 +2709,40 @@ static bool strings_print(RzCore *core, RzCmdStateOutput *state, const RzPVector
 		char quiet_val[20];
 		ut64 paddr, vaddr;
 		paddr = string->paddr;
+
+		char *xref_address_str = NULL;
+		char *flag_name_str = NULL;
+		if (print_xref) {
+			// search xrefs to string
+			RzList *xrefs = rz_analysis_xrefs_get_to(core->analysis, paddr);
+			RzAnalysisXRef *xref;
+			RzListIter *xrefIter;
+			RzStrBuf *xref_addresses = rz_strbuf_new("");
+			rz_list_foreach (xrefs, xrefIter, xref) {
+				char addr_str[32];
+				rz_strf(addr_str, "0x%08" PFMT64x, xref->from);
+				if (rz_strbuf_length(xref_addresses) > 0) {
+					rz_strbuf_append(xref_addresses, ",");
+				}
+				rz_strbuf_append(xref_addresses, addr_str);
+			}
+			rz_list_free(xrefs);
+			xref_address_str = rz_strbuf_drain(xref_addresses);
+
+			// search possible flag
+			const RzList *flags = rz_flag_get_list(core->flags, paddr);
+			RzFlagItem *flag;
+			RzListIter *flagIter;
+			RzStrBuf *flag_names = rz_strbuf_new("");
+			rz_list_foreach (flags, flagIter, flag) {
+				if (rz_strbuf_length(flag_names) > 0) {
+					rz_strbuf_append(flag_names, ",");
+				}
+				rz_strbuf_append(flag_names, flag->name);
+			}
+			flag_name_str = rz_strbuf_drain(flag_names);
path: librz/core/cbin.c
user: login: Rot127
body: Please move this whole case into a `static` function. The `strings_print` gets too long otherwise.
created_at: 2025-05-16T14:47:11Z
author_association: MEMBER
diff_hunk: @@ -2742,12 +2780,15 @@ static bool strings_print(RzCore *core, RzCmdStateOutput *state, const RzPVector
 			pj_o(state->d.pj);
 			pj_kn(state->d.pj, "vaddr", vaddr);
 			pj_kn(state->d.pj, "paddr", paddr);
-			pj_kn(state->d.pj, "ordinal", string->ordinal);
 			pj_kn(state->d.pj, "size", string->size);
 			pj_kn(state->d.pj, "length", string->length);
 			pj_ks(state->d.pj, "section", section_name);
 			pj_ks(state->d.pj, "type", type_string);
 			// data itself may be encoded so use pj_ks
+			if (print_xref) {
+				pj_ks(state->d.pj, "flag", flag_name_str);
+				pj_ks(state->d.pj, "xref-from", xref_address_str);
path: librz/core/cbin.c
user: login: Rot127
body: Please add a test which has prints `json` output.
created_at: 2025-05-16T14:50:56Z
author_association: MEMBER
diff_hunk: @@ -694,8 +693,8 @@ static void print_string(RzBinFile *bf, RzBinString *string, PJ *pj, int mode) {
 		printf("0x%" PFMT64x " %u %u %s\n", vaddr, string->size, string->length, string->string);
 		break;
 	case RZ_MODE_PRINT:
-		printf("%03u 0x%08" PFMT64x " 0x%08" PFMT64x " %u %u (%s) %s %s\n",
-			string->ordinal, string->paddr, vaddr,
+		printf("0x%08" PFMT64x " 0x%08" PFMT64x " %u %u (%s) %s %s\n",
path: librz/main/rz-bin.c
user: login: Rot127
body: ```suggestion
		printf("0x%08" PFMT64x " 0x%08" PFMT64x " %" PFMT32u " %" PFMT32u " (%s) %s %s\n",
```
created_at: 2025-05-16T14:52:07Z
author_association: MEMBER
diff_hunk: @@ -2686,7 +2686,56 @@ RZ_API bool rz_core_bin_segments_print(RZ_NONNULL RzCore *core, RZ_NONNULL RzBin
 	return true;
 }
 
-static bool strings_print(RzCore *core, RzCmdStateOutput *state, const RzPVector /*<RzBinString *>*/ *vec) {
+/**
+ * \brief Collect cross-references and flags for strings_print
+ *
+ * \param core Pointer to RzCore
+ * \param paddr Physical address
+ * \param xref_address_str Output parameter for cross-reference address string
+ * \param flag_name_str Output parameter for flag name string
+ */
+static void collect_string_xrefs_and_flags(RzCore *core, ut64 paddr, char **xref_address_str, char **flag_name_str) {
+	// search xrefs to string
+	RzList *xrefs = rz_analysis_xrefs_get_to(core->analysis, paddr);
+	RzAnalysisXRef *xref;
+	RzListIter *xrefIter;
+	RzStrBuf *xref_addresses = rz_strbuf_new("");
+	rz_list_foreach (xrefs, xrefIter, xref) {
+		if (rz_strbuf_length(xref_addresses) > 0) {
+			rz_strbuf_append(xref_addresses, ",");
+		}
+		RzFlagItem *f = rz_flag_get_at(core->flags, xref->from, false);
+		if (f) {
+			const char *name = core->flags->realnames && f->realname ? f->realname : f->name;
+			if (f->offset != xref->from) {
+				rz_strbuf_appendf(xref_addresses, "%s + %d\n", name, (int)(xref->from - f->offset));
+			} else {
+				rz_strbuf_append(xref_addresses, name);
+			}
+		} else {
+			char addr_str[32];
+			rz_strf(addr_str, "0x%08" PFMT64x, xref->from);
+			rz_strbuf_append(xref_addresses, addr_str);
+		}
+	}
+	rz_list_free(xrefs);
+	*xref_address_str = rz_strbuf_drain(xref_addresses);
+
+	// search possible flag
path: librz/core/cbin.c
user: login: notxvilka
body: It's LGTM as is, but a better way would be extract this API first and then reuse it: https://github.com/rizinorg/rizin/issues/4993
created_at: 2025-05-22T04:14:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -2686,7 +2686,56 @@ RZ_API bool rz_core_bin_segments_print(RZ_NONNULL RzCore *core, RZ_NONNULL RzBin
 	return true;
 }
 
-static bool strings_print(RzCore *core, RzCmdStateOutput *state, const RzPVector /*<RzBinString *>*/ *vec) {
+/**
+ * \brief Collect cross-references and flags for strings_print
+ *
+ * \param core Pointer to RzCore
+ * \param paddr Physical address
+ * \param xref_address_str Output parameter for cross-reference address string
+ * \param flag_name_str Output parameter for flag name string
+ */
+static void collect_string_xrefs_and_flags(RzCore *core, ut64 paddr, char **xref_address_str, char **flag_name_str) {
+	// search xrefs to string
+	RzList *xrefs = rz_analysis_xrefs_get_to(core->analysis, paddr);
+	RzAnalysisXRef *xref;
+	RzListIter *xrefIter;
+	RzStrBuf *xref_addresses = rz_strbuf_new("");
+	rz_list_foreach (xrefs, xrefIter, xref) {
+		if (rz_strbuf_length(xref_addresses) > 0) {
+			rz_strbuf_append(xref_addresses, ",");
+		}
+		RzFlagItem *f = rz_flag_get_at(core->flags, xref->from, false);
+		if (f) {
+			const char *name = core->flags->realnames && f->realname ? f->realname : f->name;
+			if (f->offset != xref->from) {
+				rz_strbuf_appendf(xref_addresses, "%s + %d\n", name, (int)(xref->from - f->offset));
+			} else {
+				rz_strbuf_append(xref_addresses, name);
+			}
+		} else {
+			char addr_str[32];
+			rz_strf(addr_str, "0x%08" PFMT64x, xref->from);
+			rz_strbuf_append(xref_addresses, addr_str);
+		}
+	}
+	rz_list_free(xrefs);
+	*xref_address_str = rz_strbuf_drain(xref_addresses);
+
+	// search possible flag
path: librz/core/cbin.c
user: login: Rot127
body: Agree. You can place it into `flag.c::rz_flag_str_at_addr(RzList /*<RzFlagItem *>*/ *flags, ut64 addr, char separator)`. Or maybe with a better name :)

Otherwise lgtm.
created_at: 2025-05-22T11:05:05Z
author_association: MEMBER
diff_hunk: @@ -2686,7 +2686,56 @@ RZ_API bool rz_core_bin_segments_print(RZ_NONNULL RzCore *core, RZ_NONNULL RzBin
 	return true;
 }
 
-static bool strings_print(RzCore *core, RzCmdStateOutput *state, const RzPVector /*<RzBinString *>*/ *vec) {
+/**
+ * \brief Collect cross-references and flags for strings_print
+ *
+ * \param core Pointer to RzCore
+ * \param paddr Physical address
+ * \param xref_address_str Output parameter for cross-reference address string
+ * \param flag_name_str Output parameter for flag name string
+ */
+static void collect_string_xrefs_and_flags(RzCore *core, ut64 paddr, char **xref_address_str, char **flag_name_str) {
+	// search xrefs to string
+	RzList *xrefs = rz_analysis_xrefs_get_to(core->analysis, paddr);
+	RzAnalysisXRef *xref;
+	RzListIter *xrefIter;
+	RzStrBuf *xref_addresses = rz_strbuf_new("");
+	rz_list_foreach (xrefs, xrefIter, xref) {
+		if (rz_strbuf_length(xref_addresses) > 0) {
+			rz_strbuf_append(xref_addresses, ",");
+		}
+		RzFlagItem *f = rz_flag_get_at(core->flags, xref->from, false);
+		if (f) {
+			const char *name = core->flags->realnames && f->realname ? f->realname : f->name;
+			if (f->offset != xref->from) {
+				rz_strbuf_appendf(xref_addresses, "%s + %d\n", name, (int)(xref->from - f->offset));
+			} else {
+				rz_strbuf_append(xref_addresses, name);
+			}
+		} else {
+			char addr_str[32];
+			rz_strf(addr_str, "0x%08" PFMT64x, xref->from);
+			rz_strbuf_append(xref_addresses, addr_str);
+		}
+	}
+	rz_list_free(xrefs);
+	*xref_address_str = rz_strbuf_drain(xref_addresses);
+
+	// search possible flag
path: librz/core/cbin.c
user: login: PeiweiHu
body: Accidentally found we already have `rz_flag_get_liststr` 😆 
created_at: 2025-05-22T12:06:29Z
author_association: CONTRIBUTOR

PR comments:
user: login: wargio
created_at: 2025-05-05T05:12:39Z
body: Invert `xref-from` with `string`
author_association: MEMBER
user: login: wargio
created_at: 2025-05-11T08:34:36Z
body: I just thought about this issue and I think the `ordinal` value is kinda useless. It's useful only for java/dex but even there there are commands for it.
Maybe we can remove it @notxvilka 
author_association: MEMBER
user: login: notxvilka
created_at: 2025-05-11T18:18:48Z
body: > I just thought about this issue and I think the `ordinal` value is kinda useless. It's useful only for java/dex but even there there are commands for it. Maybe we can remove it @notxvilka

Yep, possible.
author_association: CONTRIBUTOR
user: login: notxvilka
created_at: 2025-05-11T18:20:34Z
body: Fails on Windows:
```
[XX]   2 secs C:\projects\rizin\test\db\cmd\cmd_i izx show strings with xrefs
ANSICON=1 RZ_NOPLUGINS=1 C:\projects\rizin\rizin-vs2022_64-v0.9.0\bin\rizin.exe -escr.utf8=0 -escr.color=0 -escr.interactive=0 -eflirt.sigdb.load.system=false -esearch.show_progress=false -eflirt.sigdb.load.home=false -N -qc 'aaa
izx
' bins/arm/elf/hello_world
-- stdout
--- expected
+++ actual
@@ -1,4 +1,4 @@
-     paddr      vaddr flag                   len size section type  xref-from  string        
----------------------------------------------------------------------------------------------
-0x00000574 0x00000574 str.Hello_world         12   13 .rodata ascii 0x00000512 Hello world!
-0x00000494 0x00000494 sym.register_tm_clones  10   11 .text   ascii 0x00000508 \bH\tKxD\tJ{D
+     paddr      vaddr flag                               len            size section type  xref-from  string        
+--------------------------------------------------------------------------------------------------------------------
+0x00000574 0x00000574 str.Hello_world        140698833649676 140698833649677 .rodata ascii 0x00000512 Hello world!
+0x00000494 0x00000494 sym.register_tm_clones 140698833649674 140698833649675 .text   ascii 0x00000508 \bH\tKxD\tJ{D
-- stderr
WARNING: Neither hash nor gnu_hash exist. Falling back to heuristics for deducing the number of dynamic symbols...
WARNING: Neither hash nor gnu_hash exist. Falling back to heuristics for deducing the number of dynamic symbols...
WARNING: Neither hash nor gnu_hash exist. Falling back to heuristics for deducing the number of dynamic symbols...
ERROR: Cannot determine entrypoint, using 0x000003fc.
[**]                C:\projects\rizin\test\db\cmd\cmd_i     4391 OK       122 BR        1 XX       22 FX
```
author_association: CONTRIBUTOR
user: login: wargio
created_at: 2025-05-13T11:19:32Z
body: Can you remove the ordinal value (also from the struct)?
author_association: MEMBER
user: login: PeiweiHu
created_at: 2025-05-14T02:43:09Z
body: @wargio 

> Can you remove the ordinal value (also from the struct)?

Remove ordinal for all iz* command or just izx?
author_association: CONTRIBUTOR
user: login: wargio
created_at: 2025-05-14T05:05:50Z
body: All of them. Remove also the value in the struct.
author_association: MEMBER
user: login: PeiweiHu
created_at: 2025-05-14T16:16:32Z
body: > Fails on Windows:
> 
> ```
> [XX]   2 secs C:\projects\rizin\test\db\cmd\cmd_i izx show strings with xrefs
> ANSICON=1 RZ_NOPLUGINS=1 C:\projects\rizin\rizin-vs2022_64-v0.9.0\bin\rizin.exe -escr.utf8=0 -escr.color=0 -escr.interactive=0 -eflirt.sigdb.load.system=false -esearch.show_progress=false -eflirt.sigdb.load.home=false -N -qc 'aaa
> izx
> ' bins/arm/elf/hello_world
> -- stdout
> --- expected
> +++ actual
> @@ -1,4 +1,4 @@
> -     paddr      vaddr flag                   len size section type  xref-from  string        
> ----------------------------------------------------------------------------------------------
> -0x00000574 0x00000574 str.Hello_world         12   13 .rodata ascii 0x00000512 Hello world!
> -0x00000494 0x00000494 sym.register_tm_clones  10   11 .text   ascii 0x00000508 \bH\tKxD\tJ{D
> +     paddr      vaddr flag                               len            size section type  xref-from  string        
> +--------------------------------------------------------------------------------------------------------------------
> +0x00000574 0x00000574 str.Hello_world        140698833649676 140698833649677 .rodata ascii 0x00000512 Hello world!
> +0x00000494 0x00000494 sym.register_tm_clones 140698833649674 140698833649675 .text   ascii 0x00000508 \bH\tKxD\tJ{D
> -- stderr
> WARNING: Neither hash nor gnu_hash exist. Falling back to heuristics for deducing the number of dynamic symbols...
> WARNING: Neither hash nor gnu_hash exist. Falling back to heuristics for deducing the number of dynamic symbols...
> WARNING: Neither hash nor gnu_hash exist. Falling back to heuristics for deducing the number of dynamic symbols...
> ERROR: Cannot determine entrypoint, using 0x000003fc.
> [**]                C:\projects\rizin\test\db\cmd\cmd_i     4391 OK       122 BR        1 XX       22 FX
> ```

This is solved. I wrongly use 

```
rz_table_add_rowf(state->d.t, "XXsnnssss", paddr, vaddr, flag_name_str,
					(int)string->length, (int)string->size,...
```

which should be 

```
rz_table_add_rowf(state->d.t, "XXsddssss", paddr, vaddr, flag_name_str,
					(int)string->length, (int)string->size,...
```

author_association: CONTRIBUTOR
user: login: notxvilka
created_at: 2025-05-14T16:47:23Z
body: > This is solved. I wrongly use
> 
> ```
> rz_table_add_rowf(state->d.t, "XXsnnssss", paddr, vaddr, flag_name_str,
> 					(int)string->length, (int)string->size,...
> ```
> 
> which should be
> 
> ```
> rz_table_add_rowf(state->d.t, "XXsddssss", paddr, vaddr, flag_name_str,
> 					(int)string->length, (int)string->size,...
> ```

We really should have one more format character(s) to avoid the need to cast to `int`, potentially misrepresenting the number. Not in this case, but in some other cases it might be beneficial.

author_association: CONTRIBUTOR
user: login: codecov[bot]
created_at: 2025-05-15T03:07:49Z
body: ## [Codecov](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg) Report
Attention: Patch coverage is `82.69231%` with `9 lines` in your changes missing coverage. Please review.
> Project coverage is 44.88%. Comparing base [(`2760a7d`)](https://app.codecov.io/gh/rizinorg/rizin/commit/2760a7d2941fd321d080f0a6acee3f99d448cfa4?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg) to head [(`a62dc94`)](https://app.codecov.io/gh/rizinorg/rizin/commit/a62dc9440d6d77f6dba5ede340e222bf5a1b74a5?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg).
> Report is 30 commits behind head on dev.

| [Files with missing lines](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg) | Patch % | Lines |
|---|---|---|
| [librz/core/cbin.c](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?src=pr&el=tree&filepath=librz%2Fcore%2Fcbin.c&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg#diff-bGlicnovY29yZS9jYmluLmM=) | 82.92% | [2 Missing and 5 partials :warning: ](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg) |
| [librz/bin/bfile\_string.c](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?src=pr&el=tree&filepath=librz%2Fbin%2Fbfile_string.c&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg#diff-bGlicnovYmluL2JmaWxlX3N0cmluZy5j) | 80.00% | [1 Missing and 1 partial :warning: ](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg) |

<details><summary>Additional details and impacted files</summary>


| [Files with missing lines](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg) | Coverage Δ | |
|---|---|---|
| [librz/bin/format/dex/dex.c](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?src=pr&el=tree&filepath=librz%2Fbin%2Fformat%2Fdex%2Fdex.c&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg#diff-bGlicnovYmluL2Zvcm1hdC9kZXgvZGV4LmM=) | `65.39% <ø> (+10.57%)` | :arrow_up: |
| [librz/bin/format/java/class\_bin.c](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?src=pr&el=tree&filepath=librz%2Fbin%2Fformat%2Fjava%2Fclass_bin.c&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg#diff-bGlicnovYmluL2Zvcm1hdC9qYXZhL2NsYXNzX2Jpbi5j) | `66.71% <ø> (+7.05%)` | :arrow_up: |
| [librz/bin/format/pyc/marshal.c](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?src=pr&el=tree&filepath=librz%2Fbin%2Fformat%2Fpyc%2Fmarshal.c&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg#diff-bGlicnovYmluL2Zvcm1hdC9weWMvbWFyc2hhbC5j) | `60.24% <ø> (+19.42%)` | :arrow_up: |
| [librz/core/golang.c](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?src=pr&el=tree&filepath=librz%2Fcore%2Fgolang.c&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg#diff-bGlicnovY29yZS9nb2xhbmcuYw==) | `67.03% <ø> (-0.17%)` | :arrow_down: |
| [librz/include/rz\_bin.h](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?src=pr&el=tree&filepath=librz%2Finclude%2Frz_bin.h&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg#diff-bGlicnovaW5jbHVkZS9yel9iaW4uaA==) | `43.47% <ø> (ø)` | |
| [librz/main/rz-bin.c](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?src=pr&el=tree&filepath=librz%2Fmain%2Frz-bin.c&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg#diff-bGlicnovbWFpbi9yei1iaW4uYw==) | `58.53% <100.00%> (ø)` | |
| [librz/main/rz-find.c](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?src=pr&el=tree&filepath=librz%2Fmain%2Frz-find.c&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg#diff-bGlicnovbWFpbi9yei1maW5kLmM=) | `64.60% <ø> (-0.38%)` | :arrow_down: |
| [librz/bin/bfile\_string.c](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?src=pr&el=tree&filepath=librz%2Fbin%2Fbfile_string.c&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg#diff-bGlicnovYmluL2JmaWxlX3N0cmluZy5j) | `66.04% <80.00%> (+0.09%)` | :arrow_up: |
| [librz/core/cbin.c](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?src=pr&el=tree&filepath=librz%2Fcore%2Fcbin.c&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg#diff-bGlicnovY29yZS9jYmluLmM=) | `67.74% <82.92%> (+0.27%)` | :arrow_up: |

... and [297 files with indirect coverage changes](https://app.codecov.io/gh/rizinorg/rizin/pull/5122/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg)

------

[Continue to review full report in Codecov by Sentry](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?dropdown=coverage&src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg). Last update [2760a7d...a62dc94](https://app.codecov.io/gh/rizinorg/rizin/pull/5122?dropdown=coverage&src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rizinorg).

</details>
<details><summary> :rocket: New features to boost your workflow: </summary>

- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
author_association: NONE
user: login: PeiweiHu
created_at: 2025-05-15T04:33:04Z
body: > An improvement already, but for `xref-from` maybe it make sense to show the function name/flag if present, e.g. the result of `fd`. WDYT?

That makes sense, agreed! I’ll make the change to include the function name/flag from fd.
author_association: CONTRIBUTOR