This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

DUEL support


Hi.

Is there an interest in having DUEL support in GDB ?

DUEL is a high-level data exploring language, originally written as a
gdb patch in 1993, for a PhD project.

Apparently, forgotten and abandoned since then, although it made into
dbx on irix (looks like SGI simply applied it, as the patch is public
domain) - that's where I first saw the feature.

I found that patch yesterday, ported to 6.6, fixed a few bugs (added
support for bool, long long, typedefs, references, fixed type parsing,
etc). Looks like working.  I didn't spend too much time on it though,
the patch definitely needs polishing.

Anybody's interested ?

This is what it looks like:

(gdb) dl
Supported DUEL commands:
duel help      - give basic help (shortcut: dl ?)
duel longhelp  - give a longer help (dl ??)
duel examples  - show useful usage examples (dl ex)
duel operators - operators summary (dl ops)
duel aliases   - show current aliases (dl alias)
duel clear     - clear all aliases
duel debug     - toggle duel debug mode
(gdb) dl ex
x[10..20,22,24,40..60]    display x[i] for the selected indexes
x[9..0]                   display x[i] backwards
x[..100] >? 5 <? 10       display x[i] if 5<x[i]<10
x[0..99]=>if(_>5 && _<10) _   same
val[..50].if(is_dx) x else y   val[i].x or val[i].y depending on val[i].is_dx
emp[..50].if(is_m) _      return emp[i] if emp[i].is_m
x[i:=..100]=y[i] ;        assign y[i] to x[i]
x[i:=..100] >? x[i+1]     check if x[i] is not sorted
(x[..100] >? 0)[[2]]      return the 3rd positive x[i]
argv[0..]@0               argv[0] argv[1] .. until first null
emp[0..]@(code==0)        emp[0]..emp[n-1] where emp[n].code==0
head-->next->val          val of each element in a linked list
*head-->next[[20]]        element 20 of list, '*' display struct
w/fields
#/head-->next             count elements on a linked list
#/(head-->next-val>?5)    count those over 5
head-->(next!=?head)      expand cyclic linked list (tail->head)
T mytype x ;              declare var for user defined type (need 'T')
int i ; for(i=0 ;i<5 ..   declare variable, use C construct.
(gdb)

Regards,
Sergei


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]