diff --git a/libr/core/cbin.c b/libr/core/cbin.c index 066b88f30f..b4e6bbe5ca 100644 --- a/libr/core/cbin.c +++ b/libr/core/cbin.c @@ -1598,6 +1598,7 @@ static int bin_symbols_internal(RCore *r, int mode, ut64 laddr, int va, ut64 at, RListIter *iter; RList *symbols; const char *lang; + bool firstexp = true; int i = 0, is_arm, lastfs = 's', bin_demangle = r_config_get_i (r->config, "bin.demangle"); if (!info) { @@ -1727,7 +1728,7 @@ static int bin_symbols_internal(RCore *r, int mode, ut64 laddr, int va, ut64 at, "\"type\":\"%s\"," "\"vaddr\":%"PFMT64d"," "\"paddr\":%"PFMT64d"}", - iter->p?",":"", str, + (exponly && firstexp) ? "" : (iter->p ? "," : ""), str, sn.demname? sn.demname: "", sn.nameflag, (int)symbol->size, @@ -1799,6 +1800,9 @@ static int bin_symbols_internal(RCore *r, int mode, ut64 laddr, int va, ut64 at, } snFini (&sn); i++; + if (exponly && firstexp) { + firstexp = false; + } } //handle thumb and arm for entry point since they are not present in symbols