home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 mARCH / PCWK3A99.iso / Linux / DDD331 / DDD-3_1_.000 / DDD-3_1_ / ddd-3.1.1 / ddd / ddd.man.txt < prev    next >
Text File  |  1998-12-06  |  328KB  |  7,393 lines

  1.  
  2.  
  3.  
  4. ddd(1)                                                     ddd(1)
  5.  
  6.  
  7. NNAAMMEE
  8.        ddd, xddd - the data display debugger
  9.  
  10.  
  11. SSYYNNOOPPSSIISS
  12.        dddddd    [----ggddbb] [----ddbbxx] [----xxddbb] [----jjddbb] [----ppyyddbb] [----ppeerrll]
  13.               [----ddeebbuuggggeerr _n_a_m_e] [----[rr]hhoosstt [_u_s_e_r_n_a_m_e@@]_h_o_s_t_n_a_m_e]]
  14.               [----hheellpp] [----ttrraaccee] [----vveerrssiioonn] [----ccoonnffiigguurraattiioonn]
  15.               [_o_p_t_i_o_n_s_._._.] [_p_r_o_g_r_a_m [_c_o_r_e | _p_r_o_c_e_s_s_-_i_d]]
  16.  
  17.        but usually just
  18.  
  19.        dddddd    _p_r_o_g_r_a_m
  20.  
  21. DDEESSCCRRIIPPTTIIOONN
  22.        The purpose of a debugger such as DDD is to allow  you  to
  23.        see  what  is  going  on "inside" another program while it
  24.        executes--or what another program was doing at the  moment
  25.        it crashed.
  26.  
  27.        DDD can do four main kinds of things (plus other things in
  28.        support of these) to help you catch bugs in the act:
  29.  
  30.        +o Start  your  program,  specifying  anything  that  might
  31.          affect its behavior.
  32.  
  33.        +o Make your program stop on specified conditions.
  34.  
  35.        +o Examine   what  has  happened,  when  your  program  has
  36.          stopped.
  37.  
  38.        +o Change things in your program,  so  you  can  experiment
  39.          with  correcting  the  effects  of  one bug and go on to
  40.          learn about another.
  41.  
  42.        "Classical" UNIX debuggers such as the GNU debugger  (GDB)
  43.        provide  a  command-line interface and a multitude of com-
  44.        mands for these and other debugging purposes.   DDD  is  a
  45.        comfortable  _g_r_a_p_h_i_c_a_l  _u_s_e_r  _i_n_t_e_r_f_a_c_e around an inferior
  46.        GDB, DBX, XDB, JDB, Python debugger, or Perl debugger.
  47.  
  48. IINNVVOOKKIINNGG DDDDDD
  49.        You can run DDD with no arguments  or  options.   However,
  50.        the  most  usual  way to start DDD is with one argument or
  51.        two, specifying an executable program as the argument:
  52.  
  53.          dddddd pprrooggrraamm
  54.  
  55.        You can also start with both an executable program  and  a
  56.        core file specified:
  57.  
  58.          dddddd pprrooggrraamm ccoorree
  59.  
  60.        You  can,  instead,  specify  a  process  ID  as  a second
  61.  
  62.  
  63.  
  64. DDD 3.1.1                   1998-12-06                          1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ddd(1)                                                     ddd(1)
  71.  
  72.  
  73.        argument, if you want to debug a running process:
  74.  
  75.          dddddd pprrooggrraamm 11223344
  76.  
  77.        would attach DDD to process 11223344 (unless you also  have  a
  78.        file  named `11223344'; DDD does check for a core file first).
  79.  
  80.        By default, DDD determines the inferior debugger automati-
  81.        cally.  Use
  82.  
  83.          dddddd ----ggddbb _p_r_o_g_r_a_m
  84.  
  85.        or
  86.  
  87.          dddddd ----ddbbxx _p_r_o_g_r_a_m
  88.  
  89.        or
  90.  
  91.          dddddd ----xxddbb _p_r_o_g_r_a_m
  92.  
  93.        or
  94.  
  95.          dddddd ----jjddbb _c_l_a_s_s
  96.  
  97.        or
  98.  
  99.          dddddd ----ppyyddbb _m_o_d_u_l_e
  100.  
  101.        or
  102.  
  103.          dddddd ----ppeerrll _p_r_o_g_r_a_m_f_i_l_e
  104.  
  105.        to run GDB, DBX, XDB, JDB, PYDB or Perl as inferior debug-
  106.        ger.
  107.  
  108.        To learn more about DDD options, run
  109.  
  110.          dddddd ----hheellpp
  111.  
  112.        to get a list of  frequently  used  options,  or  see  the
  113.        `OOPPTTIIOONNSS' section, below.
  114.  
  115. TTHHEE DDDDDD WWIINNDDOOWWSS
  116.    TThhee DDDDDD MMaaiinn WWiinnddoowwss
  117.        DDD is composed of three main windows:
  118.  
  119.        +o The  _D_a_t_a  _W_i_n_d_o_w shows the current data of the debugged
  120.          program.
  121.  
  122.        +o The _S_o_u_r_c_e _W_i_n_d_o_w shows the current source code  of  the
  123.          debugged program.
  124.  
  125.        +o The _D_e_b_u_g_g_e_r _C_o_n_s_o_l_e accepts debugger commands and shows
  126.          debugger messages.
  127.  
  128.  
  129.  
  130. DDD 3.1.1                   1998-12-06                          2
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ddd(1)                                                     ddd(1)
  137.  
  138.  
  139.        By default, DDD places these main windows stacked into one
  140.        single top-level window, but DDD can also be configured to
  141.        treat each one separately.
  142.  
  143.  
  144.        Besides these main windows, there are some other  optional
  145.        windows:
  146.  
  147.        +o The _C_o_m_m_a_n_d _T_o_o_l offers buttons for frequently used com-
  148.          mands.  It is usually placed on the source window.
  149.  
  150.        +o The _M_a_c_h_i_n_e _C_o_d_e _W_i_n_d_o_w shows the current machine  code.
  151.          It is usually placed beneath the current source.
  152.  
  153.        +o The  _E_x_e_c_u_t_i_o_n  _W_i_n_d_o_w shows the input and output of the
  154.          debugged program.
  155.  
  156.        DDD also has several temporary  _d_i_a_l_o_g_s  for  showing  and
  157.        entering additional information.
  158.  
  159.    UUssiinngg tthhee CCoommmmaanndd TTooooll
  160.        The  command  tool is a small window containing frequently
  161.        used DDD commands.  It can be moved around on top  of  the
  162.        DDD  windows,  but  it  can  also  be placed besides them.
  163.        Whenever you save DDD state, DDD also saves  the  distance
  164.        between  command tool and source window, such that you can
  165.        select your own individual  command  tool  placement.   To
  166.        move   the   command  tool  to  its  saved  position,  use
  167.        `VViieeww-->>CCoommmmaanndd TTooooll'.
  168.  
  169.        By default, the command tool _s_t_i_c_k_s to the DDD source win-
  170.        dow:  Whenever you move the DDD source window, the command
  171.        tool follows such that the distance between source  window
  172.        and  command  tool remains the same.  By default, the com-
  173.        mand tool is also _a_u_t_o_-_r_a_i_s_e_d, such that it stays  on  top
  174.        of other DDD windows.
  175.  
  176.        The  command tool can be configured to appear as a command
  177.        tool    bar    above    the     source     window;     see
  178.        `EEddiitt-->>PPrreeffeerreenncceess-->>SSoouurrccee-->>TTooooll   BBuuttttoonnss  LLooccaattiioonn'  for
  179.        details.
  180.  
  181.  
  182.    UUssiinngg tthhee TTooooll BBaarr
  183.        Some DDD commands require an _a_r_g_u_m_e_n_t.  This  argument  is
  184.        specified  in  the  _a_r_g_u_m_e_n_t  _f_i_e_l_d, labeled `(())::'.  Basi-
  185.        cally, there are four ways to set arguments:
  186.  
  187.        +o You can _k_e_y _i_n the argument manually.
  188.  
  189.        +o You can _p_a_s_t_e the current selection  into  the  argument
  190.          field  (typically  using  _m_o_u_s_e _b_u_t_t_o_n _2).  To clear old
  191.          contents beforehand, click on the `(())::' label.
  192.  
  193.  
  194.  
  195.  
  196. DDD 3.1.1                   1998-12-06                          3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ddd(1)                                                     ddd(1)
  203.  
  204.  
  205.        +o You can _s_e_l_e_c_t _a_n _i_t_e_m from the source and data windows.
  206.          This  will  automatically  copy the item to the argument
  207.          field.
  208.  
  209.        +o You can select a _p_r_e_v_i_o_u_s_l_y _u_s_e_d _a_r_g_u_m_e_n_t from the drop-
  210.          down menu at the right of the argument field.
  211.  
  212.        Using  GDB and Perl, the argument field provides a comple-
  213.        tion mechanism.  You can enter the first few characters of
  214.        an item an press the TTAABB key to complete it.  Pressing TTAABB
  215.        again shows alternative completions.
  216.  
  217.        After having entered an argument, you can  select  one  of
  218.        the buttons on the right.  Most of these buttons also have
  219.        menus associated with them; this is indicated by  a  small
  220.        arrow  in  the  upper  right corner.  Pressing and holding
  221.        _m_o_u_s_e _b_u_t_t_o_n _1 on such a button will pop up  a  menu  with
  222.        further operations.
  223.  
  224.  
  225. GGEETTTTIINNGG HHEELLPP
  226.        DDD  has  an extensive on-line help system.  Here's how to
  227.        get help while working with DDD.
  228.  
  229.    BBuuttttoonn TTiippss
  230.        You can get a short help text on most DDD buttons by  sim-
  231.        ply  moving  the  mouse  pointer on it and leave it there.
  232.        After a second, a small window (called  _b_u_t_t_o_n  _t_i_p)  pops
  233.        up, giving a hint on the button's meaning.  The button tip
  234.        disappears as soon  as  you  move  the  mouse  pointer  to
  235.        another item.
  236.  
  237.    TThhee SSttaattuuss LLiinnee
  238.        The  status  line also displays information about the cur-
  239.        rently selected item.  By clicking on the status line, you
  240.        can redisplay the most recent messages.
  241.  
  242.    CCoonntteexxtt--SSeennssiittiivvee HHeellpp
  243.        You  can  get detailed help on any visible DDD item.  Just
  244.        point on the item you want help and press  the  `FF11'  key.
  245.        This pops up a detailed help text.
  246.  
  247.        The  DDD  dialogs  all  contain  `HHeellpp'  buttons that give
  248.        detailed information about the dialog.
  249.  
  250.    HHeellpp oonn DDeebbuuggggeerr CCoommmmaannddss
  251.        You can get help on debugger commands by  entering  `hheellpp'
  252.        at the debugger prompt.
  253.  
  254.        See  `EEnntteerriinngg  CCoommmmaannddss',  below, for details on entering
  255.        commands.
  256.  
  257.    AArree YYoouu SSttuucckk??
  258.        If you are stuck, try `HHeellpp-->>WWhhaatt NNooww??'  (the  `WWhhaatt  NNooww'
  259.  
  260.  
  261.  
  262. DDD 3.1.1                   1998-12-06                          4
  263.  
  264.  
  265.  
  266.  
  267.  
  268. ddd(1)                                                     ddd(1)
  269.  
  270.  
  271.        item  in  the `HHeellpp' menu) or press CCttrrll++FF11.  Depending on
  272.        the current state, DDD will give you some  hints  on  what
  273.        you can do next.
  274.  
  275.    UUnnddooiinngg CCoommmmaannddss
  276.        And  if,  after  all,  you  made  a  mistake, don't worry.
  277.        Almost every DDD command can be undone, using `EEddiitt-->>UUnnddoo'
  278.        or  the  `UUnnddoo'  button  on  the  command tool.  Likewise,
  279.        `EEddiitt-->>RReeddoo' repeats the command most recently undone.
  280.  
  281. OOPPEENNIINNGG FFIILLEESS
  282.        If you did not invoke  DDD  specifying  a  program  to  be
  283.        debugged,  you  can  use the `FFiillee' menu to open programs,
  284.        core dumps and sources.
  285.  
  286.  
  287.        To open a program to be debugged, select `FFiillee-->>OOppeenn  PPrroo--
  288.        ggrraamm'.
  289.  
  290.        In JDB, select `FFiillee-->>OOppeenn CCllaassss' instead.  This gives you
  291.        a list of available classes to choose from.
  292.  
  293.        To re-open a recently debugged program  or  class,  select
  294.        `FFiillee-->>OOppeenn RReecceenntt' and choose a program or class from the
  295.        list.
  296.  
  297.        Note: With XDB and some DBX versions, the debugged program
  298.        must be specified upon invocation and cannot be changed at
  299.        run time.
  300.  
  301.        To open a core dump for the  program,  select  `FFiillee-->>OOppeenn
  302.        CCoorree DDuummpp'.  Before `OOppeenn CCoorree DDuummpp', you should first use
  303.        `FFiillee-->>OOppeenn PPrrooggrraamm' to specify the program that generated
  304.        the core dump and to load its symbol table.
  305.  
  306.        To  open  a  source  file  of the debugged program, select
  307.        `FFiillee-->>OOppeenn SSoouurrccee'.
  308.  
  309.        +o Using GDB, this gives you a list of the sources used for
  310.          compiling your program.
  311.  
  312.        +o Using other inferior debuggers, this gives you a list of
  313.          accessible source files, which may or may not be related
  314.          to your program.
  315.  
  316. LLOOOOKKIINNGG UUPP IITTEEMMSS
  317.        As  soon  as  the source of the debugged program is avail-
  318.        able, the _s_o_u_r_c_e _w_i_n_d_o_w displays its current source  text.
  319.        (If  a  source  text  cannot be found, use `EEddiitt-->>GGDDBB SSeett--
  320.        ttiinnggss' to specify source text directories.)
  321.  
  322.        In the source window, you can lookup and examine  function
  323.        and  variable  definitions as well as search for arbitrary
  324.        occurrences in the source text.
  325.  
  326.  
  327.  
  328. DDD 3.1.1                   1998-12-06                          5
  329.  
  330.  
  331.  
  332.  
  333.  
  334. ddd(1)                                                     ddd(1)
  335.  
  336.  
  337.    LLooookkiinngg uupp DDeeffiinniittiioonnss
  338.        If you wish to lookup a specific function or variable def-
  339.        inition  whose  name  is visible in the source text, click
  340.        with _m_o_u_s_e _b_u_t_t_o_n _1 on the function or variable name.  The
  341.        name  is  copied to the argument field.  Alter the name if
  342.        desired and click on the `LLooookkuupp (())' button  to  find  its
  343.        definition.
  344.  
  345.  
  346.        As a faster alternative, you can simply press _m_o_u_s_e _b_u_t_t_o_n
  347.        _3 on the function name and select the `LLooookkuupp'  item  from
  348.        the source popup menu.
  349.  
  350.        As  an  even faster alternative, you can also double-click
  351.        on a function call (an identifier followed by a `(('  char-
  352.        acter) to lookup the function definition.
  353.  
  354.    TTeexxttuuaall SSeeaarrcchh
  355.        If  the  item  you wish to search is visible in the source
  356.        text, click with _m_o_u_s_e _b_u_t_t_o_n _1 on it.  The identifier  is
  357.        copied  to  the  argument field.  Click on the `FFiinndd>>>> (())'
  358.        button to find following occurrences and  on  the  `FFiinndd<<<<
  359.        (())' button to find previous occurrences.
  360.  
  361.        As  an alternative, you can enter the item in the argument
  362.        field and click on one of the `FFiinndd' buttons.
  363.  
  364.        By default, DDD finds only complete words.  To search  for
  365.        arbitrary    substrings,   change   the   value   of   the
  366.        `SSoouurrccee-->>FFiinndd WWoorrddss OOnnllyy' option.
  367.  
  368.    LLooookkiinngg uupp PPrreevviioouuss LLooccaattiioonnss
  369.        After looking up a  location,  use  `EEddiitt-->>UUnnddoo'  (or  the
  370.        `UUnnddoo' button on the command tool) to go back to the orig-
  371.        inal locations.  `EEddiitt-->>RReeddoo' brings you back again to the
  372.        location you looked for.
  373.  
  374.  
  375. BBRREEAAKKPPOOIINNTTSS
  376.        You  can  make the program stop at certain _b_r_e_a_k_p_o_i_n_t_s and
  377.        trace its execution.
  378.  
  379.    SSeettttiinngg BBrreeaakkppooiinnttss bbyy LLooccaattiioonn
  380.        If the source line is visible, click with _m_o_u_s_e  _b_u_t_t_o_n  _1
  381.        on  the  left of the source line and then on the `BBrreeaakk aatt
  382.        (())' button.
  383.  
  384.        As a faster alternative, you can simply press _m_o_u_s_e _b_u_t_t_o_n
  385.        _3  on  the  left  of  the  source line and select the `SSeett
  386.        BBrreeaakkppooiinntt' item from the line popup menu.
  387.  
  388.  
  389.        As an even faster alternative, you can simply double-click
  390.        on the left of the source line to set a breakpoint.
  391.  
  392.  
  393.  
  394. DDD 3.1.1                   1998-12-06                          6
  395.  
  396.  
  397.  
  398.  
  399.  
  400. ddd(1)                                                     ddd(1)
  401.  
  402.  
  403.        As  yet  another alternative, you can select `SSoouurrccee-->>EEddiitt
  404.        BBrreeaakkppooiinnttss'.  Click on the `BBrreeaakk' button and  enter  the
  405.        location.
  406.  
  407.        (If  you  find  this  number of alternatives confusing, be
  408.        aware that DDD users fall  into  three  categories,  which
  409.        must  all  be supported.  _N_o_v_i_c_e _u_s_e_r_s explore DDD and may
  410.        prefer to use one single  mouse  button.   _A_d_v_a_n_c_e_d  _u_s_e_r_s
  411.        know how to use shortcuts and prefer popup menus.  _E_x_p_e_r_i_-
  412.        _e_n_c_e_d _u_s_e_r_s prefer the command line interface.)
  413.  
  414.        Breakpoints are indicated by a  plain  stop  sign,  or  as
  415.        `##_n##',  where  _n  is  the breakpoint number.  A greyed out
  416.        stop sign (or `___n__') indicates a disabled  breakpoint.   A
  417.        stop sign with a question mark (or `??_n??') indicates a con-
  418.        ditional breakpoint or a breakpoint with an  ignore  count
  419.        set.
  420.  
  421.        If  you  set  a breakpoint by mistake, use `EEddiitt-->>UUnnddoo' to
  422.        delete it again.
  423.  
  424.        Note: We have received reports that  some  Motif  versions
  425.        fail  to  display  stop signs correctly.  If this happens,
  426.        try writing in your `$$HHOOMMEE//..dddddd//iinniitt' file:
  427.  
  428.          DDdddd**ccaacchheeGGllyypphhIImmaaggeess:: ooffff
  429.  
  430.        and restart DDD.  See also the `ccaacchheeGGllyypphhIImmaaggeess' resource
  431.        in the `RREESSOOUURRCCEESS' section, below.
  432.  
  433.    SSeettttiinngg BBrreeaakkppooiinnttss bbyy NNaammee
  434.        If the function name is visible, click with _m_o_u_s_e _b_u_t_t_o_n _1
  435.        on the function name.  The function name is copied to  the
  436.        argument  field.  Click on the `BBrreeaakk aatt (())' button to set
  437.        a breakpoint there.
  438.  
  439.        As a shorter alternative, you can simply press _m_o_u_s_e  _b_u_t_-
  440.        _t_o_n  _3  on  the  function name and select the `bbrreeaakk' item
  441.        from the popup menu.
  442.  
  443.        As yet another alternative, you can click  on  `NNeeww'  from
  444.        the   Breakpoint  editor  (invoked  through  `SSoouurrccee-->>EEddiitt
  445.        BBrreeaakkppooiinnttss') and enter the function name.
  446.  
  447.    SSeettttiinngg RReeggeexxpp BBrreeaakkppooiinnttss
  448.        Using GDB, you can also set a breakpoint on all  functions
  449.        that  match a given string.  `BBrreeaakk aatt (())-->>SSeett BBrreeaakkppooiinnttss
  450.        aatt RReeggeexxpp (())' sets a breakpoint  on  all  functions  whose
  451.        name  matches  the _r_e_g_u_l_a_r _e_x_p_r_e_s_s_i_o_n given in `(())'.  Here
  452.        are some examples:
  453.  
  454.        +o To set a breakpoint on every function that  starts  with
  455.          `XXmm', set `(())' to `^^XXmm'.
  456.  
  457.  
  458.  
  459.  
  460. DDD 3.1.1                   1998-12-06                          7
  461.  
  462.  
  463.  
  464.  
  465.  
  466. ddd(1)                                                     ddd(1)
  467.  
  468.  
  469.        +o To set a breakpoint on every member of class `DDaattee', set
  470.          `(())' to `^^DDaattee::::'.
  471.  
  472.        +o To set a breakpoint on every function  whose  name  con-
  473.          tains `__ffuunn', set `(())' to `__ffuunn'.
  474.  
  475.        +o To  set  a  breakpoint  on  every  function that ends in
  476.          `__tteesstt', set `(())' to `__tteesstt$$'.
  477.  
  478.        Once these multiple breakpoints are set, they are  treated
  479.        just  like the breakpoints set with the `BBrreeaakk aatt (())' but-
  480.        ton.  You can delete them, disable them, or make them con-
  481.        ditional  the  same  way  as  any  other  breakpoint.  Use
  482.        `SSoouurrccee-->>EEddiitt BBrreeaakkppooiinnttss' to view and edit  the  list  of
  483.        breakpoints.
  484.  
  485.    DDiissaabblliinngg BBrreeaakkppooiinnttss
  486.        To  temporarily disable a breakpoint, press _m_o_u_s_e _b_u_t_t_o_n _3
  487.        on the breakpoint symbol and select  the  `DDiissaabbllee  BBrreeaakk--
  488.        ppooiinntt'  item from the breakpoint popup menu.  To enable it
  489.        again, select `EEnnaabbllee BBrreeaakkppooiinntt'.
  490.  
  491.  
  492.        As an alternative, you can select the breakpoint and click
  493.        on `DDiissaabbllee' or `EEnnaabbllee' in the Breakpoint editor (invoked
  494.        through `SSoouurrccee-->>EEddiitt BBrreeaakkppooiinnttss'.
  495.  
  496.        Disabled breakpoints are indicated by a grey stop sign, or
  497.        `___n__', where _n is the breakpoint number.
  498.  
  499.        The  `DDiissaabbllee  BBrreeaakkppooiinntt' item is also accessible via the
  500.        `CClleeaarr aatt (())' button.  Just press and hold _m_o_u_s_e _b_u_t_t_o_n  _1
  501.        on the button to get a popup menu.
  502.  
  503.        Note: JDB does not support breakpoint disabling.
  504.  
  505.    TTeemmppoorraarryy BBrreeaakkppooiinnttss
  506.        A  _t_e_m_p_o_r_a_r_y  _b_r_e_a_k_p_o_i_n_t is immediately deleted as soon as
  507.        it is reached.  To set a temporary breakpoint, press _m_o_u_s_e
  508.        _b_u_t_t_o_n  _3  on  the  left of the source line and select the
  509.        `SSeett TTeemmppoorraarryy BBrreeaakkppooiinntt' item from the popup menu.
  510.  
  511.        As a faster alternative, you can  simply  double-click  on
  512.        the left of the source line while holding CCttrrll.
  513.  
  514.        Temporary  breakpoints  are convenient to make the program
  515.        continue up to a specific location: just set the temporary
  516.        breakpoint at this location and continue execution.
  517.  
  518.        The  `CCoonnttiinnuuee UUnnttiill HHeerree' item from the popup menu sets a
  519.        temporary breakpoint on the left of the  source  line  and
  520.        immediately continues execution.  Execution stops when the
  521.        temporary breakpoint is reached.
  522.  
  523.  
  524.  
  525.  
  526. DDD 3.1.1                   1998-12-06                          8
  527.  
  528.  
  529.  
  530.  
  531.  
  532. ddd(1)                                                     ddd(1)
  533.  
  534.  
  535.        The `SSeett TTeemmppoorraarryy BBrreeaakkppooiinntt' and `CCoonnttiinnuuee  UUnnttiill  HHeerree'
  536.        items  are  also  accessible via the `BBrreeaakk aatt (())' button.
  537.        Just press and hold _m_o_u_s_e _b_u_t_t_o_n _1 on the button to get  a
  538.        popup menu.
  539.  
  540.        Note: JDB does not support temporary breakpoints.
  541.  
  542.    DDeelleettiinngg BBrreeaakkppooiinnttss
  543.        If the breakpoint is visible, click with _m_o_u_s_e _b_u_t_t_o_n _1 on
  544.        the breakpoint.  The breakpoint location is copied to  the
  545.        argument  field.   Click  on  the  `CClleeaarr aatt (())' button to
  546.        delete all breakpoints there.
  547.  
  548.        If the function name is visible, click with _m_o_u_s_e _b_u_t_t_o_n _1
  549.        on  the function name.  The function name is copied to the
  550.        argument field.  Click on the `CClleeaarr aatt (())' button to  set
  551.        a breakpoint there.
  552.  
  553.        As a faster alternative, you can simply press _m_o_u_s_e _b_u_t_t_o_n
  554.        _3 on the breakpoint and  select  the  `DDeelleettee  BBrreeaakkppooiinntt'
  555.        item from the popup menu.
  556.  
  557.        As  yet another alternative, you can select the breakpoint
  558.        and click on `DDeelleettee' in the  Breakpoint  editor  (invoked
  559.        through `SSoouurrccee-->>EEddiitt BBrreeaakkppooiinnttss').
  560.  
  561.        As an even faster alternative, you can simply double-click
  562.        on the breakpoint while holding CCttrrll.
  563.  
  564.    EEddiittiinngg BBrreeaakkppooiinntt PPrrooppeerrttiieess
  565.        You can change all properties of a breakpoint by  pressing
  566.        _m_o_u_s_e  _b_u_t_t_o_n _3 on the breakpoint symbol and select `PPrroopp--
  567.        eerrttiieess' from the breakpoint popup menu.  This will pop  up
  568.        a  dialog  showing  the current properties of the selected
  569.        breakpoint.
  570.  
  571.        As an even faster alternative, you can simply double-click
  572.        on the breakpoint.
  573.  
  574.  
  575.  
  576.        +o Click on `LLooookkuupp' to move the cursor to the breakpoint's
  577.          location.
  578.  
  579.        +o Click on `EEnnaabbllee' to enable the breakpoint.
  580.  
  581.        +o Click on `DDiissaabbllee' to disable the breakpoint.
  582.  
  583.        +o Click on `TTeemmpp' to make the breakpoint temporary.  Note:
  584.          GDB  has  no  way  to  make  a temporary breakpoint non-
  585.          temporary again.
  586.  
  587.        +o Click on `DDeelleettee' to delete the breakpoint.
  588.  
  589.  
  590.  
  591.  
  592. DDD 3.1.1                   1998-12-06                          9
  593.  
  594.  
  595.  
  596.  
  597.  
  598. ddd(1)                                                     ddd(1)
  599.  
  600.  
  601.    BBrreeaakkppooiinntt CCoonnddiittiioonnss
  602.        In the field `CCoonnddiittiioonn' of  the  `BBrreeaakkppooiinntt  PPrrooppeerrttiieess'
  603.        panel,  you  can  specify  a  _b_r_e_a_k_p_o_i_n_t  _c_o_n_d_i_t_i_o_n.  If a
  604.        breakpoint condition is set, the breakpoint stops the pro-
  605.        gram  only if the associated condition is met--that is, if
  606.        the condition expression evaluates to a non-zero value.
  607.  
  608.        Note: JDB does not support breakpoint conditions.
  609.  
  610.    BBrreeaakkppooiinntt IIggnnoorree CCoouunnttss
  611.        In the field `IIggnnoorree CCoouunntt' of the `BBrreeaakkppooiinntt PPrrooppeerrttiieess'
  612.        panel,  you can specify a _b_r_e_a_k_p_o_i_n_t _i_g_n_o_r_e _c_o_u_n_t.  If the
  613.        ignore count is set to some value _N, the next _N  crossings
  614.        of  the  breakpoint  will be ignored: Each crossing of the
  615.        breakpoint decrements the ignore count; the program  stops
  616.        only if the ignore count is zero.
  617.  
  618.        Note:  JDB,  Perl  and  some  DBX  variants do not support
  619.        breakpoint ignore counts.
  620.  
  621.    BBrreeaakkppooiinntt CCoommmmaannddss
  622.        Note: Breakpoint commands are currently available  on  GDB
  623.        only.
  624.  
  625.        Using  the  `CCoommmmaannddss'  buttons of the `BBrreeaakkppooiinntt PPrrooppeerr--
  626.        ttiieess' panel, you can record and edit commands to  be  exe-
  627.        cuted when the breakpoint is hit.
  628.  
  629.        To record a command sequence, follow these steps:
  630.  
  631.        +o Click  on  `RReeccoorrdd' to begin the recording of the break-
  632.          point commands.
  633.  
  634.        +o Now interact with DDD.  While recording,  DDD  does  not
  635.          execute commands, but simply records them to be executed
  636.          when the breakpoint is hit.  The recorded debugger  com-
  637.          mands are shown in the debugger console.
  638.  
  639.        +o To  stop the recording, click on `EEnndd' or enter `eenndd' at
  640.          the GDB prompt.   To  _c_a_n_c_e_l  the  recording,  click  on
  641.          `IInntteerrrruupptt' or press EESSCC.
  642.  
  643.        +o Click  on `EEddiitt >>>>' to edit the recorded commands.  When
  644.          done with editing, click on `EEddiitt <<<<' to close the  com-
  645.          mands editor.
  646.  
  647.  
  648.    MMoovviinngg aanndd CCooppyyiinngg BBrreeaakkppooiinnttss
  649.        To  move a breakpoint to a different location, press _m_o_u_s_e
  650.        _b_u_t_t_o_n _1 on the stop sign and drag it to the desired loca-
  651.        tion.   This  is  equivalent to deleting the breakpoint at
  652.        the old location and setting a breakpoint at the new loca-
  653.        tion.   The  new breakpoint inherits all properties of the
  654.        old breakpoint, except the breakpoint number.
  655.  
  656.  
  657.  
  658. DDD 3.1.1                   1998-12-06                         10
  659.  
  660.  
  661.  
  662.  
  663.  
  664. ddd(1)                                                     ddd(1)
  665.  
  666.  
  667.        To copy a breakpoint to a new location,  press  the  SShhiifftt
  668.        key while dragging.
  669.  
  670.        Note: Dragging breakpoints is not possible when glyphs are
  671.        disabled.  Delete and set breakpoints instead.
  672.  
  673.    LLooookkiinngg uupp BBrreeaakkppooiinnttss
  674.        If you  wish  to  lookup  a  specific  breakpoint,  select
  675.        `SSoouurrccee-->>EEddiitt  BBrreeaakkppooiinnttss-->>LLooookkuupp'.   After  selecting  a
  676.        breakpoint from the list and clicking the `LLooookkuupp' button,
  677.        the breakpoint location is displayed.
  678.  
  679.        As  an  alternative,  you  can  enter `##_n' in the argument
  680.        field, where _n is the breakpoint number and click  on  the
  681.        `LLooookkuupp (())' button to find its definition.
  682.  
  683.    EEddiittiinngg aallll BBrreeaakkppooiinnttss
  684.        To   view   and  edit  all  breakpoints  at  once,  select
  685.        `SSoouurrccee-->>EEddiitt BBrreeaakkppooiinnttss'.  This will  popup  the  _B_r_e_a_k_-
  686.        _p_o_i_n_t  _E_d_i_t_o_r which displays the state of all breakpoints.
  687.  
  688.  
  689.        In the breakpoint editor, you can select individual break-
  690.        points  by clicking on them.  Pressing CCttrrll while clicking
  691.        toggles the selection.  To  edit  the  properties  of  all
  692.        selected breakpoints, click on `PPrrooppss'.
  693.  
  694.    MMoorree BBrreeaakkppooiinntt FFeeaattuurreess
  695.        Using  GDB, a few more commands related to breakpoints can
  696.        be invoked through the debugger console:
  697.  
  698.        hhbbrreeaakk _p_o_s_i_t_i_o_n
  699.                  Sets a hardware-assisted breakpoint at _p_o_s_i_t_i_o_n.
  700.                  This  command requires hardware support and some
  701.                  target hardware may not have this support.   The
  702.                  main  purpose  of  this is EPROM/ROM code debug-
  703.                  ging, so you can set a breakpoint at an instruc-
  704.                  tion without changing the instruction.
  705.  
  706.        tthhbbrreeaakk _p_o_s
  707.                  Set  a temporary hardware-assisted breakpoint at
  708.                  _p_o_s.
  709.  
  710.        See the GDB documentation for details on these commands.
  711.  
  712. WWAATTCCHHPPOOIINNTTSS
  713.        You can make the program stop as  soon  as  some  variable
  714.        value  changes,  or when some variable is read or written.
  715.        This is called `setting a _w_a_t_c_h_p_o_i_n_t on a variable'.
  716.  
  717.        Watchpoints have much in common with breakpoints: in  par-
  718.        ticular,  you  can  enable and disable them.  You can also
  719.        set conditions, ignore counts, and commands to be executed
  720.        when a watched variable changes its value.
  721.  
  722.  
  723.  
  724. DDD 3.1.1                   1998-12-06                         11
  725.  
  726.  
  727.  
  728.  
  729.  
  730. ddd(1)                                                     ddd(1)
  731.  
  732.  
  733.        Please  note:  on architectures without special watchpoint
  734.        support, watchpoints currently make  the  program  execute
  735.        two  orders  of magnitude more slowly.  This is so because
  736.        the inferior debugger must  interrupt  the  program  after
  737.        each  machine  instruction in order to examine whether the
  738.        watched value has changed.  However,  this  delay  can  be
  739.        well  worth  it to catch errors when you have no clue what
  740.        part of your program is the culprit.
  741.  
  742.        Note: Watchpoints are available in GDB and some DBX  vari-
  743.        ants only.  In XDB, a similar feature is available via XDB
  744.        _a_s_s_e_r_t_i_o_n_s; see the XDB documentation for details.
  745.  
  746.    SSeettttiinngg WWaattcchhppooiinnttss
  747.        If the variable name is visible, click with _m_o_u_s_e _b_u_t_t_o_n _1
  748.        on  the variable name.  The variable name is copied to the
  749.        argument field.  Otherwise, enter the variable name in the
  750.        argument  field.   Click on the `WWaattcchh (())' button to set a
  751.        watchpoint there.
  752.  
  753.        Using GDB, you can set  different  types  of  watchpoints.
  754.        Click  and hold _m_o_u_s_e _b_u_t_t_o_n _1 on the `WWaattcchh (())' button to
  755.        get a menu.
  756.  
  757.    EEddiittiinngg WWaattcchhppooiinntt PPrrooppeerrttiieess
  758.        To change the properties of a watchpoint, enter  the  name
  759.        of  the watched variable in the argument field.  Click and
  760.        hold _m_o_u_s_e _b_u_t_t_o_n _1 on the `WWaattcchh (())'  button  and  select
  761.        `WWaattcchhppooiinntt PPrrooppeerrttiieess'.
  762.  
  763.        The WWaattcchhppooiinntt PPrrooppeerrttiieess panel has the same functionality
  764.        as the BBrreeaakkppooiinntt PPrrooppeerrttiieess panel;  see  `EEddiittiinngg  BBrreeaakk--
  765.        ppooiinntt  PPrrooppeerrttiieess',  above, for details.  As an additional
  766.        feature, you can click on `PPrriinntt (())' to  see  the  current
  767.        value of a watched variable.
  768.  
  769.    EEddiittiinngg aallll WWaattcchhppooiinnttss
  770.        To   view   and  edit  all  watchpoints  at  once,  select
  771.        `DDaattaa-->>EEddiitt WWaattcchhppooiinnttss'.  This will popup the  _W_a_t_c_h_p_o_i_n_t
  772.        _E_d_i_t_o_r which displays the state of all watchpoints.
  773.  
  774.        The  _W_a_t_c_h_p_o_i_n_t  _E_d_i_t_o_r  has the same functionality as the
  775.        _B_r_e_a_k_p_o_i_n_t _E_d_i_t_o_r; see `EEddiittiinngg AAllll  BBrreeaakkppooiinnttss',  above,
  776.        for  details.   As an additional feature, you can click on
  777.        `PPrriinntt (())' to see the current value of a watched variable.
  778.  
  779.    DDeelleettiinngg WWaattcchhppooiinnttss
  780.        To  delete  a  watchpoint,  enter  the name of the watched
  781.        variable in the argument field and click the `UUnnwwaattcchh  (())'
  782.        button.
  783.  
  784. RRUUNNNNIINNGG TTHHEE PPRROOGGRRAAMM
  785.    SSttaarrttiinngg PPrrooggrraamm EExxeeccuuttiioonn
  786.        To   start  execution  of  the  debugged  program,  select
  787.  
  788.  
  789.  
  790. DDD 3.1.1                   1998-12-06                         12
  791.  
  792.  
  793.  
  794.  
  795.  
  796. ddd(1)                                                     ddd(1)
  797.  
  798.  
  799.        `PPrrooggrraamm-->>RRuunn'.  You will then be prompted for  the  argu-
  800.        ments to pass to your program.  You can either select from
  801.        a list of previously used arguments or enter own arguments
  802.        in  the text field.  Afterwards, press the `RRuunn' button to
  803.        start execution with the selected arguments.
  804.  
  805.        To run your program again, with the same arguments, select
  806.        `PPrrooggrraamm-->>RRuunn AAggaaiinn' or press the `RRuunn' button on the com-
  807.        mand tool.  You may also enter `rruunn',  followed  by  argu-
  808.        ments at the debugger prompt instead.
  809.  
  810.  
  811.    UUssiinngg tthhee EExxeeccuuttiioonn WWiinnddooww
  812.        By  default,  input  and  output of your program go to the
  813.        debugger console.  As an alternative, DDD can also  invoke
  814.        an  _e_x_e_c_u_t_i_o_n _w_i_n_d_o_w, where the program terminal input and
  815.        output is shown.  To activate the execution window, select
  816.        `PPrrooggrraamm-->>RRuunn iinn EExxeeccuuttiioonn WWiinnddooww'.
  817.  
  818.        While  the  execution  window  is active, DDD invokes your
  819.        program such that its standard input,  output,  and  error
  820.        streams are redirected to the execution window.  Note that
  821.        the device `//ddeevv//ttttyy' still refers to  the  debugger  con-
  822.        sole, _n_o_t the execution window.
  823.  
  824.        You  can  override  the  DDD  stream redirection by giving
  825.        alternate  redirection  operations  as   arguments.    For
  826.        instance,  to  have  your program read from a file, but to
  827.        write to the execution window, invoke your program with `<<
  828.        _f_i_l_e'  as  argument.   Likewise,  to redirect the standard
  829.        error output to the debugger console,  use  `22>>  //ddeevv//ttttyy'
  830.        (assuming  the  inferior  debugger  and/or your UNIX shell
  831.        support standard error redirection).
  832.  
  833.        The execution window is not available in JDB and Perl.
  834.  
  835.    AAttttaacchhiinngg ttoo aa RRuunnnniinngg PPrroocceessss
  836.        If the debugged program is already running  in  some  pro-
  837.        cess,  you can _a_t_t_a_c_h to this process (instead of starting
  838.        a new one with `RRuunn').  Select `FFiillee-->>AAttttaacchh  ttoo  PPrroocceessss'
  839.        to choose from a list of processes.  Afterwards, press the
  840.        `AAttttaacchh' button to attach to the specified process.
  841.  
  842.        The first thing DDD does  after  arranging  to  debug  the
  843.        specified  process is to stop it. You can examine and mod-
  844.        ify an attached process with all the DDD commands that are
  845.        ordinarily  available when you start processes with `RRuunn'.
  846.        You can insert breakpoints; you can step and continue; you
  847.        can  modify  storage. If you would rather the process con-
  848.        tinue running, you may use `CCoonnttiinnuuee' after attaching  DDD
  849.        to the process.
  850.  
  851.        When using `AAttttaacchh ttoo PPrroocceessss', you should first use `OOppeenn
  852.        PPrrooggrraamm' to specify the program running in the process and
  853.  
  854.  
  855.  
  856. DDD 3.1.1                   1998-12-06                         13
  857.  
  858.  
  859.  
  860.  
  861.  
  862. ddd(1)                                                     ddd(1)
  863.  
  864.  
  865.        load its symbol table.
  866.  
  867.        When you have finished debugging the attached process, you
  868.        can use the `FFiillee-->>DDeettaacchh PPrroocceessss' to release it from  DDD
  869.        control.   Detaching  the process continues its execution.
  870.        After `DDeettaacchh PPrroocceessss', that process and DDD  become  com-
  871.        pletely independent once more, and you are ready to attach
  872.        another process or start one with `RRuunn'.
  873.  
  874.  
  875.        You can customize the list of processes shown by  defining
  876.        an    alternate    command   to   list   processes.    See
  877.        `EEddiitt-->>PPrreeffeerreenncceess-->>HHeellppeerrss-->>LLiisstt PPrroocceesssseess'.
  878.  
  879.        Note: JDB, PYDB, and Perl do  not  support  attaching  the
  880.        debugger to running processes.
  881.  
  882.    SSttooppppiinngg tthhee PPrrooggrraamm
  883.        The program stops as soon as a breakpoint is reached.  The
  884.        current execution position is highlighted by an arrow.
  885.  
  886.        You can interrupt a running program any time  by  clicking
  887.        the `IInntteerrrruupptt' button or typing EESSCC in a DDD window.
  888.  
  889.    RReessuummiinngg EExxeeccuuttiioonn
  890.        To  resume  execution,  at  the address where your program
  891.        last stopped, click on the `CCoonnttiinnuuee` button.  Any  break-
  892.        points set at that address are bypassed.
  893.  
  894.        To  execute just one source line, click on the `SStteepp' but-
  895.        ton.  The program is executed until control reaches a dif-
  896.        ferent  source line, which may be in a different function.
  897.  
  898.        To continue to the next  line  in  the  current  function,
  899.        click  on  the  `NNeexxtt' button.  This is similar to `SStteepp',
  900.        but any function calls appearing within the line  of  code
  901.        are executed without stopping.
  902.  
  903.        To  continue  until a greater line in the current function
  904.        is reached, click on the `UUnnttiill' button.  This  is  useful
  905.        to avoid single stepping through a loop more than once.
  906.  
  907.        To  continue  running  until the current function returns,
  908.        use the `FFiinniisshh' button.  The returned value (if  any)  is
  909.        printed.
  910.  
  911.        To  continue running until a line after the current source
  912.        line is reached, use the `CCoonnttiinnuuee  UUnnttiill  HHeerree'  facility
  913.        from the line popup menu.  See the `TTeemmppoorraarryy BBrreeaakkppooiinnttss'
  914.        section, above, for a discussion.
  915.  
  916.    AAlltteerriinngg tthhee EExxeeccuuttiioonn PPoossiittiioonn
  917.        To resume execution at a different location,  press  _m_o_u_s_e
  918.        _b_u_t_t_o_n _1 on the arrow and drag it to a different location.
  919.  
  920.  
  921.  
  922. DDD 3.1.1                   1998-12-06                         14
  923.  
  924.  
  925.  
  926.  
  927.  
  928. ddd(1)                                                     ddd(1)
  929.  
  930.  
  931.        The most common occasion to use this feature  is  to  back
  932.        up--perhaps  with more breakpoints set-over a portion of a
  933.        program that has already executed, in order to examine its
  934.        execution in more detail.
  935.  
  936.        Moving  the execution position does not change the current
  937.        stack frame, or the stack pointer, or the contents of  any
  938.        memory  location  or  any  register other than the program
  939.        counter.
  940.  
  941.        Some inferior debuggers (notably GDB) allow you to set the
  942.        new  execution position into a different function from the
  943.        one currently executing.  This may lead to bizarre results
  944.        if  the  two  functions expect different patterns of argu-
  945.        ments or of local variables.  For this reason, moving  the
  946.        execution  position requests confirmation if the specified
  947.        line is not in the function currently executing.
  948.  
  949.        After moving the execution position, click  on  the  `CCoonn--
  950.        ttiinnuuee' button to resume execution.
  951.  
  952.  
  953.        Note: Dragging the execution position is not possible when
  954.        glyphs are disabled.  Use `SSeett  EExxeeccuuttiioonn  PPoossiittiioonn'  from
  955.        the  breakpoint  popup  menu  instead to set the execution
  956.        position to the  current  location.   This  item  is  also
  957.        accessible  by pressing and holding the `BBrreeaakk aatt (())/CClleeaarr
  958.        aatt (())' button.
  959.  
  960.        Note: JDB does not support altering  the  execution  posi-
  961.        tion.
  962.  
  963.    EExxaammiinniinngg tthhee SSttaacckk
  964.        When your program has stopped, the first thing you need to
  965.        know is where it stopped and how it got there.
  966.  
  967.        DDD provides a _b_a_c_k_t_r_a_c_e _w_i_n_d_o_w showing a summary  of  how
  968.        your  program  got  where  it is.  To enable the backtrace
  969.        window, select `SSttaattuuss-->>BBaacckkttrraaccee'.
  970.  
  971.  
  972.        The `UUpp' button selects the function that called the  cur-
  973.        rent one.
  974.  
  975.        The  `DDoowwnn' button selects the function that was called by
  976.        the current one.
  977.  
  978.        You can also directly type the `uupp' and `ddoowwnn' commands at
  979.        the   debugger  prompt.   Typing  CCttrrll++UUpp  and  CCttrrll++DDoowwnn,
  980.        respectively, will also move you through the stack.
  981.  
  982.        `UUpp' and `DDoowwnn' actions can be undone via `EEddiitt-->>UUnnddoo'.
  983.  
  984.  
  985.  
  986.  
  987.  
  988. DDD 3.1.1                   1998-12-06                         15
  989.  
  990.  
  991.  
  992.  
  993.  
  994. ddd(1)                                                     ddd(1)
  995.  
  996.  
  997.    ""UUnnddooiinngg"" PPrrooggrraamm EExxeeccuuttiioonn
  998.        If you take a look at the `EEddiitt-->>UUnnddoo' menu item after  an
  999.        execution command, you'll find that DDD offers you to undo
  1000.        execution commands just as other commands.  Does this mean
  1001.        that  DDD allows you to go backwards in time, undoing pro-
  1002.        gram execution as well as undoing any side-effects of your
  1003.        program?
  1004.  
  1005.        Sorry--we  must disappoint you.  DDD cannot undo what your
  1006.        program did.  (After a little bit of thought, you'll  find
  1007.        that  this  would  be impossible in general.) However, DDD
  1008.        can  do  something  different:  it  can  show   _p_r_e_v_i_o_u_s_l_y
  1009.        _r_e_c_o_r_d_e_d _s_t_a_t_e_s of your program.
  1010.  
  1011.        After "undoing" an execution command (via `EEddiitt-->>UUnnddoo', or
  1012.        the `UUnnddoo' button), the execution position moves  back  to
  1013.        the  earlier  position  and displayed variables take their
  1014.        earlier values.  Your program state is in fact  unchanged,
  1015.        but  DDD gives you a _v_i_e_w on the earlier state as recorded
  1016.        by DDD.
  1017.  
  1018.        In this so-called _h_i_s_t_o_r_i_c _m_o_d_e, most normal DDD  commands
  1019.        that  would query further information from the program are
  1020.        disabled, since the debugger cannot  be  queried  for  the
  1021.        earlier  state.  However, you can examine the current exe-
  1022.        cution position, or the displayed variables.  Using `UUnnddoo'
  1023.        and `RReeddoo', you can move back and forward in time to exam-
  1024.        ine how your program got into the present state.
  1025.  
  1026.        To let you know that you are operating in  historic  mode,
  1027.        the  execution  arrow gets a dashed-line appearance (indi-
  1028.        cating a past position); variable displays also come  with
  1029.        dashed  lines.   Furthermore,  the status line informs you
  1030.        that you are seeing an earlier program state.
  1031.  
  1032.        Here's how historic mode works:  each  time  your  program
  1033.        stops, DDD collects the current execution position and the
  1034.        values of displayed  variables.   Backtrace,  thread,  and
  1035.        register  information is also collected if the correspond-
  1036.        ing dialogs are open.  When "undoing"  an  execution  com-
  1037.        mand,  DDD  updates  its  view  from  this collected state
  1038.        instead of querying the program.
  1039.  
  1040.        If you want to collect this information without interrupt-
  1041.        ing  your  program--within  a  loop, for instance--you can
  1042.        place a breakpoint with an associated `ccoonntt' command;  see
  1043.        `BBrreeaakkppooiinntt  CCoommmmaannddss',  above,  for  details.   When  the
  1044.        breakpoint is hit, DDD will stop, collect  the  data,  and
  1045.        execute  the  `ccoonntt' command, resuming execution.  Using a
  1046.        later `UUnnddoo', you can step back and look at  every  single
  1047.        loop iteration.
  1048.  
  1049.        To  leave  historic mode, you can use `RReeddoo' until you are
  1050.        back in the  current  program  state.   However,  any  DDD
  1051.  
  1052.  
  1053.  
  1054. DDD 3.1.1                   1998-12-06                         16
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. ddd(1)                                                     ddd(1)
  1061.  
  1062.  
  1063.        command  that refers to program state will also leave his-
  1064.        toric mode immediately by applying to the current  program
  1065.        state  instead.   For  instance, `UUpp' leaves historic mode
  1066.        immediately and selects an alternate frame in the restored
  1067.        current program state.
  1068.  
  1069.        If  you want to see the history of a specific variable, as
  1070.        recorded during program stops, you can enter the DDD  com-
  1071.        mand
  1072.  
  1073.          ggrraapphh hhiissttoorryy _n_a_m_e
  1074.  
  1075.        This  returns  a list of all previously recorded values of
  1076.        the variable _n_a_m_e, using array  syntax.   Note  that  _n_a_m_e
  1077.        must have been displayed at earlier program stops in order
  1078.        to record values.
  1079.  
  1080.    EExxaammiinniinngg TThhrreeaaddss
  1081.        Note: Thread support is available with GDB and JDB only.
  1082.  
  1083.        In some operating systems, a single program may have  more
  1084.        than  one  _t_h_r_e_a_d  of execution.  The precise semantics of
  1085.        threads differ from one operating system to  another,  but
  1086.        in  general  the  threads  of a single program are akin to
  1087.        multiple processes--except that  they  share  one  address
  1088.        space  (that  is, they can all examine and modify the same
  1089.        variables).  On the other hand, each thread  has  its  own
  1090.        registers and execution stack, and perhaps private memory.
  1091.  
  1092.        For debugging purposes, DDD lets you display the  list  of
  1093.        threads  currently  active  in  your  program and lets you
  1094.        select the _c_u_r_r_e_n_t _t_h_r_e_a_d--the thread which is  the  focus
  1095.        of  debugging.  DDD shows all program information from the
  1096.        perspective of the current thread.
  1097.  
  1098.  
  1099.        To view all currently  active  threads  in  your  program,
  1100.        select  `SSttaattuuss-->>TThhrreeaaddss'.   The  current  thread is high-
  1101.        lighted.  Select any thread to make it the current thread.
  1102.  
  1103.        Using JDB, additional functionality is available:
  1104.  
  1105.        +o Select  a  _t_h_r_e_a_d  _g_r_o_u_p  to  switch between viewing all
  1106.          threads and the threads of the selected thread group;
  1107.  
  1108.        +o Click on `SSuussppeenndd' to suspend execution of the  selected
  1109.          threads;
  1110.  
  1111.        +o Click  on  `RReessuummee'  to resume execution of the selected
  1112.          threads.
  1113.  
  1114.        For more information on threads, see the JDB and GDB docu-
  1115.        mentation.
  1116.  
  1117.  
  1118.  
  1119.  
  1120. DDD 3.1.1                   1998-12-06                         17
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. ddd(1)                                                     ddd(1)
  1127.  
  1128.  
  1129.    HHaannddlliinngg SSiiggnnaallss
  1130.        Note: Signal support is available with GDB only.
  1131.  
  1132.        A  signal  is  an  asynchronous event that can happen in a
  1133.        program.  The operating system defines the possible  kinds
  1134.        of  signals, and gives each kind a name and a number.  For
  1135.        example, in Unix SSIIGGIINNTT is the signal a program gets  when
  1136.        you  type  an  interrupt;  SSIIGGSSEEGGVV is the signal a program
  1137.        gets from referencing a place in memory far away from  all
  1138.        the  areas  in  use;  SSIIGGAALLRRMM  occurs when the alarm clock
  1139.        timer goes off (which happens only  if  your  program  has
  1140.        requested an alarm).
  1141.  
  1142.        Some  signals, including SSIIGGAALLRRMM, are a normal part of the
  1143.        functioning of your program.   Others,  such  as  SSIIGGSSEEGGVV,
  1144.        indicate  errors;  these signals are _f_a_t_a_l (kill your pro-
  1145.        gram immediately) if the  program  has  not  specified  in
  1146.        advance  some other way to handle the signal.  SSIIGGIINNTT does
  1147.        not indicate an error in your program, but it is  normally
  1148.        fatal so it can carry out the purpose of the interrupt: to
  1149.        kill the program.
  1150.  
  1151.        GDB has the ability to detect any occurrence of  a  signal
  1152.        in  your  program.  You can tell GDB in advance what to do
  1153.        for each kind of signal.
  1154.  
  1155.        Normally, DDD is set up to  ignore  non-erroneous  signals
  1156.        like  SSIIGGAALLRRMM  (so  as not to interfere with their role in
  1157.        the functioning of your program) but to stop your  program
  1158.        immediately whenever an error signal happens.  In DDD, you
  1159.        can change these settings via `SSttaattuuss-->>SSiiggnnaallss'.
  1160.  
  1161.        `SSttaattuuss-->>SSiiggnnaallss' pops up a panel showing all the kinds of
  1162.        signals and how GDB has been told to handle each one.  The
  1163.        settings available for each signal are:
  1164.  
  1165.        SSttoopp      If set, GDB should stop your program  when  this
  1166.                  signal happens.  This also implies `PPrriinntt' being
  1167.                  set.
  1168.                  If unset, GDB should not stop your program  when
  1169.                  this  signal happens.  It may still print a mes-
  1170.                  sage telling you that the signal has come in.
  1171.  
  1172.        PPrriinntt     If set, GDB should print  a  message  when  this
  1173.                  signal happens.
  1174.                  If  unset, GDB should not mention the occurrence
  1175.                  of the signal at all.  This also implies  `SSttoopp'
  1176.                  being unset.
  1177.  
  1178.        PPaassss      If  set,  GDB  should  allow your program to see
  1179.                  this signal; your program can handle the signal,
  1180.                  or  else it may terminate if the signal is fatal
  1181.                  and not handled.
  1182.                  If unset, GDB should not allow your  program  to
  1183.  
  1184.  
  1185.  
  1186. DDD 3.1.1                   1998-12-06                         18
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. ddd(1)                                                     ddd(1)
  1193.  
  1194.  
  1195.                  see this signal.
  1196.  
  1197.  
  1198.        The  entry  `AAllll  SSiiggnnaallss' is special.  Changing a setting
  1199.        here affects _a_l_l _s_i_g_n_a_l_s _a_t _o_n_c_e--except those used by the
  1200.        debugger, typically SIGTRAP and SIGINT.
  1201.  
  1202.        To undo any changes, use `EEddiitt-->>UUnnddoo'.  The `RReesseett' button
  1203.        restores the saved settings.
  1204.  
  1205.        When a signal stops your program, the signal is not  visi-
  1206.        ble  until  you  continue.   Your  program sees the signal
  1207.        then, if `PPaassss' is in effect for the signal in question _a_t
  1208.        _t_h_a_t  _t_i_m_e.   In  other words, after GDB reports a signal,
  1209.        you can change the `PPaassss' setting in `SSttaattuuss-->>SSiiggnnaallss'  to
  1210.        control  whether  your  program  sees that signal when you
  1211.        continue.
  1212.  
  1213.        You can also cause your program to see a  signal  it  nor-
  1214.        mally would not see, or to give it any signal at any time.
  1215.        The `SSeenndd' button will resume execution where your program
  1216.        stopped, but immediately give it the signal shown.
  1217.  
  1218.        On  the other hand, you can also prevent your program from
  1219.        seeing a signal.  For example, if your program stopped due
  1220.        to  some  sort  of memory reference error, you might store
  1221.        correct values into the erroneous variables and  continue,
  1222.        hoping to see more execution; but your program would prob-
  1223.        ably terminate immediately as a result of the fatal signal
  1224.        once  it  saw the signal.  To prevent this, you can resume
  1225.        execution using `CCoommmmaannddss-->>CCoonnttiinnuuee WWiitthhoouutt SSiiggnnaall'.
  1226.  
  1227.        `EEddiitt-->>SSaavvee OOppttiioonnss' does not  save  changed  signal  set-
  1228.        tings,  since  changed signal settings are normally useful
  1229.        within specific projects only.  Instead,  signal  settings
  1230.        are saved with the current session, using `FFiillee-->>SSaavvee SSeess--
  1231.        ssiioonn AAss'.
  1232.  
  1233. EEXXAAMMIINNIINNGG DDAATTAA
  1234.        DDD provides several means to examine data.
  1235.  
  1236.        VVaalluuee HHiinnttss
  1237.                  The quickest way to examine variables is to move
  1238.                  the pointer on an occurrence in the source text.
  1239.                  The value is displayed in the source line; after
  1240.                  a  second,  a  popup  window  shows the variable
  1241.                  value.  This is useful for quick examination  of
  1242.                  several simple variables.
  1243.  
  1244.        PPrriinnttiinngg VVaalluueess
  1245.                  If  you want to reuse variable values at a later
  1246.                  time, you can print the value  in  the  debugger
  1247.                  console.  This allows for displaying and examin-
  1248.                  ing larger data structures.
  1249.  
  1250.  
  1251.  
  1252. DDD 3.1.1                   1998-12-06                         19
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258. ddd(1)                                                     ddd(1)
  1259.  
  1260.  
  1261.        DDiissppllaayyiinngg VVaalluueess
  1262.                  If you want to examine complex data  structures,
  1263.                  you  can  display  them  graphically in the data
  1264.                  display.  Displays remain  effective  until  you
  1265.                  delete them; they are updated each time the pro-
  1266.                  gram stops.  This is useful  for  large  dynamic
  1267.                  structures.
  1268.  
  1269.        PPlloottttiinngg VVaalluueess
  1270.                  If you want to examine arrays of numeric values,
  1271.                  you can plot them graphically in a separate plot
  1272.                  window.   The plot is updated each time the pro-
  1273.                  gram stops.  This is useful  for  large  numeric
  1274.                  arrays.
  1275.  
  1276.        MMeemmoorryy DDuummppss
  1277.                  This  feature,  available using GDB only, allows
  1278.                  you to dump memory contents in  any  of  several
  1279.                  formats,  independently  of  your program's data
  1280.                  types.  This is described  under  `MMAACCHHIINNEE--LLEEVVEELL
  1281.                  DDEEBBUUGGGGIINNGG', below.
  1282.  
  1283.  
  1284.    SShhoowwiinngg SSiimmppllee VVaalluueess uussiinngg VVaalluuee HHiinnttss
  1285.        To  display the value of a simple variable, move the mouse
  1286.        pointer on its name.   After  a  second,  a  small  window
  1287.        (called  _v_a_l_u_e _t_i_p) pops up showing the value of the vari-
  1288.        able pointed at.  The window disappears  as  soon  as  you
  1289.        move  the mouse pointer away from the variable.  The value
  1290.        is also shown in the status line.
  1291.  
  1292.  
  1293.    PPrriinnttiinngg SSiimmppllee VVaalluueess iinn tthhee DDeebbuuggggeerr CCoonnssoollee
  1294.        The variable value can also be  printed  in  the  debugger
  1295.        console,  making  it available for further operations.  To
  1296.        print a variable value, select  the  desired  variable  by
  1297.        clicking _m_o_u_s_e _b_u_t_t_o_n _1 on its name.  The variable name is
  1298.        copied to the argument field.  By clicking the `PPrriinntt  (())'
  1299.        button,  the  value  is  printed  in the debugger console.
  1300.        Note that the value is also shown in the status line.
  1301.  
  1302.        As a shorter alternative, you can simply press _m_o_u_s_e  _b_u_t_-
  1303.        _t_o_n  _3  on  the  variable name and select the `PPrriinntt' item
  1304.        from the popup menu.
  1305.  
  1306.  
  1307.    DDiissppllaayyiinngg CCoommpplleexx VVaalluueess iinn tthhee DDaattaa WWiinnddooww
  1308.        To explore complex data structures, you can use the _g_r_a_p_h_-
  1309.        _i_c_a_l  _d_a_t_a  _d_i_s_p_l_a_y  in  the _d_a_t_a _w_i_n_d_o_w.  The data window
  1310.        holds _d_i_s_p_l_a_y_s showing names and the values of  variables.
  1311.        The display is updated each time the program stops.
  1312.  
  1313.        To  create  a  new display, select the desired variable by
  1314.        clicking _m_o_u_s_e _b_u_t_t_o_n _1 on its name.  The variable name is
  1315.  
  1316.  
  1317.  
  1318. DDD 3.1.1                   1998-12-06                         20
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. ddd(1)                                                     ddd(1)
  1325.  
  1326.  
  1327.        copied  to  the  argument field.  By clicking the `DDiissppllaayy
  1328.        (())' button, a new display is created in the  data  window.
  1329.        The  data window opens automatically as soon as you create
  1330.        a display.
  1331.  
  1332.  
  1333.        As a shorter alternative, you can simply press _m_o_u_s_e  _b_u_t_-
  1334.        _t_o_n  _3  on the variable name and select the `DDiissppllaayy' item
  1335.        from the popup menu.
  1336.  
  1337.        As an even faster alternative, you can  also  double-click
  1338.        on the variable name.
  1339.  
  1340.        As  another alternative, you may also enter the expression
  1341.        to be displayed in the argument field and press the  `DDiiss--
  1342.        ppllaayy (())' button.
  1343.  
  1344.        Finally, you may also enter
  1345.  
  1346.          ggrraapphh ddiissppllaayy _e_x_p_r [cclluusstteerreedd] [aatt ((_x_, _y))] [ddeeppeennddeenntt oonn
  1347.        _d_i_s_p_l_a_y] [[nnooww oorr]wwhheenn iinn _s_c_o_p_e]
  1348.  
  1349.        at the debugger prompt.  The options  have  the  following
  1350.        meaning:
  1351.  
  1352.        +o If  the  suffix  `cclluusstteerreedd'  is specified, the new data
  1353.          display is created in a cluster.  See  `CClluusstteerriinngg  DDiiss--
  1354.          ppllaayyss', below, for a discussion.
  1355.  
  1356.        +o If  the  suffix  `aatt  ((_x_, _y))' is specified, the new data
  1357.          display is created at the position (_x, _y).  Otherwise, a
  1358.          default position is assigned.
  1359.  
  1360.        +o If  the  suffix `ddeeppeennddeenntt oonn _d_i_s_p_l_a_y' is given, an edge
  1361.          from the display numbered or named _d_i_s_p_l_a_y  to  the  new
  1362.          display is created.  Otherwise, no edge is created.
  1363.  
  1364.        +o If the suffix `wwhheenn iinn _s_c_o_p_e' is given, display creation
  1365.          is _d_e_f_e_r_r_e_d until execution reaches the given  _s_c_o_p_e  (a
  1366.          function name, as in the backtrace output).
  1367.  
  1368.        +o If  the  suffix  `nnooww  oorr  wwhheenn  iinn _s_c_o_p_e' is given, DDD
  1369.          attempts to create the display immediately.  If  display
  1370.          creation  fails,  it is _d_e_f_e_r_r_e_d until execution reaches
  1371.          the given _s_c_o_p_e (a function name, as  in  the  backtrace
  1372.          output).
  1373.  
  1374.        +o If  no  `wwhheenn  iinn'  suffix or `nnooww oorr wwhheenn iinn' suffix is
  1375.          given, the display is created immediately.
  1376.  
  1377.        If you created a display by mistake, use  `EEddiitt-->>UUnnddoo'  to
  1378.        undisplay it.
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384. DDD 3.1.1                   1998-12-06                         21
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390. ddd(1)                                                     ddd(1)
  1391.  
  1392.  
  1393.    SSeelleeccttiinngg DDiissppllaayyss
  1394.        Each display in the data window has a _t_i_t_l_e _b_a_r containing
  1395.        the _d_i_s_p_l_a_y _n_u_m_b_e_r and the displayed expression (the  _d_i_s_-
  1396.        _p_l_a_y  _n_a_m_e).  Below the title, the _d_i_s_p_l_a_y _v_a_l_u_e is shown.
  1397.  
  1398.        You can select individual displays  by  clicking  on  them
  1399.        with _m_o_u_s_e _b_u_t_t_o_n _1.  The resulting expression is shown in
  1400.        the _a_r_g_u_m_e_n_t _f_i_e_l_d, below.
  1401.  
  1402.        You can _e_x_t_e_n_d an existing selection by pressing the SShhiifftt
  1403.        key  while  selecting.   You  can  also _t_o_g_g_l_e an existing
  1404.        selection  by  pressing  the  SShhiifftt  key  while  selecting
  1405.        already selected displays.
  1406.  
  1407.        Single  displays  may  also be selected by using the arrow
  1408.        keys.
  1409.  
  1410.    SSeelleeccttiinngg MMuullttiippllee DDiissppllaayyss
  1411.        Multiple displays are selected  by  pressing  and  holding
  1412.        _m_o_u_s_e  _b_u_t_t_o_n  _1  somewhere  on the window background.  By
  1413.        moving the pointer while holding the button,  a  selection
  1414.        rectangle  is shown; all displays fitting in the rectangle
  1415.        are selected when mouse button 1 is released.
  1416.  
  1417.        If the SShhiifftt key is pressed while selecting, the  existing
  1418.        selection is _e_x_t_e_n_d_e_d.
  1419.  
  1420.        By  double-clicking on a display title, the display itself
  1421.        and all connected displays are automatically selected.
  1422.  
  1423.  
  1424.    SShhoowwiinngg aanndd HHiiddiinngg VVaalluueess
  1425.        Aggregate values  (i.e.  records,  structs,  classes,  and
  1426.        arrays)  can  be  shown  _e_x_p_a_n_d_e_d, that is, displaying all
  1427.        details, or _h_i_d_d_e_n, that is, displayed as `{{......}}'.
  1428.  
  1429.        To show details about an aggregate, select  the  aggregate
  1430.        by  clicking _m_o_u_s_e _b_u_t_t_o_n _1 on its name or value and click
  1431.        on the `SShhooww (())' button.  Details are shown for the aggre-
  1432.        gate itself as well as for all contained sub-aggregates.
  1433.  
  1434.        To  hide  details about an aggregate, select the aggregate
  1435.        by clicking _m_o_u_s_e _b_u_t_t_o_n _1 on its name or value and  click
  1436.        on the `HHiiddee (())' button.
  1437.  
  1438.  
  1439.        When  pressing  and  holding  _m_o_u_s_e  _b_u_t_t_o_n _1 on the `SShhooww
  1440.        (())/HHiiddee (())' button, a menu pops up with even more alterna-
  1441.        tives:
  1442.  
  1443.        SShhooww MMoorree (())
  1444.               Shows  details  of all aggregates currently hidden,
  1445.               but not of their sub-aggregates.   You  can  invoke
  1446.               this item several times in a row to reveal more and
  1447.  
  1448.  
  1449.  
  1450. DDD 3.1.1                   1998-12-06                         22
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. ddd(1)                                                     ddd(1)
  1457.  
  1458.  
  1459.               more details of the selected aggregate.
  1460.  
  1461.        SShhooww JJuusstt (())
  1462.               Shows details of the selected aggregate, but  hides
  1463.               all sub-aggregates.
  1464.  
  1465.        SShhooww AAllll (())
  1466.               Shows  all details of the selected aggregate and of
  1467.               its sub-aggregates.  This item is equivalent to the
  1468.               `SShhooww (())' button.
  1469.  
  1470.        HHiiddee (())
  1471.               Hide  all  details of the selected aggregate.  This
  1472.               item is equivalent to the `HHiiddee (())' button.
  1473.  
  1474.        As a faster alternative, you can also press _m_o_u_s_e _b_u_t_t_o_n _3
  1475.        on the aggregate and select the appropriate menu item.
  1476.  
  1477.        As  an  even faster alternative, you can also double-click
  1478.        _m_o_u_s_e _b_u_t_t_o_n _1 on a value.  If some part of the  value  is
  1479.        hidden, more details will be shown; if the entire value is
  1480.        shown, double-clicking will _h_i_d_e the value instead.   This
  1481.        way,  you  can  double-click  on a value until you get the
  1482.        right amount of details.
  1483.  
  1484.        If _a_l_l details of a display are  hidden,  the  display  is
  1485.        called  _d_i_s_a_b_l_e_d;  this  is indicated by the string `_(_D_i_s_-
  1486.        _a_b_l_e_d_)'.  Displays can also be disabled or enabled via the
  1487.        DDD commands
  1488.  
  1489.          ggrraapphh ddiissaabbllee ddiissppllaayy _d_i_s_p_l_a_y_s_._._.
  1490.  
  1491.        and
  1492.  
  1493.          ggrraapphh eennaabbllee ddiissppllaayy _d_i_s_p_l_a_y_s_._._.
  1494.  
  1495.        at the debugger prompt.  _d_i_s_p_l_a_y_s_._._. is either
  1496.  
  1497.        +o a  space-separated list of display numbers to disable or
  1498.          enable, or
  1499.  
  1500.        +o a single display name.  If  you  specify  a  display  by
  1501.          name, all displays with this name will be affected.
  1502.  
  1503.        Use `EEddiitt-->>UUnnddoo' to undo disabling or enabling displays.
  1504.  
  1505.    RRoottaattiinngg AArrrraayyss
  1506.        Arrays  can  be  aligned  horizontally  or vertically.  To
  1507.        change the alignment of an array, select it and then click
  1508.        on the `RRoottaattee (())' button.
  1509.  
  1510.        As a faster alternative, you can also press _m_o_u_s_e _b_u_t_t_o_n _3
  1511.        on the array and select the `RRoottaattee' menu item.
  1512.  
  1513.  
  1514.  
  1515.  
  1516. DDD 3.1.1                   1998-12-06                         23
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522. ddd(1)                                                     ddd(1)
  1523.  
  1524.  
  1525.    DDiissppllaayyiinngg DDeeppeennddeenntt VVaalluueess
  1526.        Dependent displays are created from an  existing  display.
  1527.        The  dependency  is  indicated  by arrows leading from the
  1528.        originating display to the dependent display.
  1529.  
  1530.        To create a dependent display, select the originating dis-
  1531.        play or display part and enter the dependent expression in
  1532.        the `(())::' argument field.  Then  click  on  the  `DDiissppllaayy'
  1533.        button.
  1534.  
  1535.        Using  dependent  displays,  you  can investigate the data
  1536.        structure of a "tree" for example and lay it out according
  1537.        to your intuitive image of the "tree" data structure.
  1538.  
  1539.        By  default, DDD does not recognize shared data structures
  1540.        (i.e. a data object  referenced  by  multiple  other  data
  1541.        objects).   See `EExxaammiinniinngg SShhaarreedd DDaattaa SSttrruuccttuurreess', below,
  1542.        for details on how to examine such structures.
  1543.  
  1544.    DDiissppllaayy SShhoorrttccuuttss
  1545.        DDD maintains a _s_h_o_r_t_c_u_t _m_e_n_u of frequently  used  display
  1546.        expressions.  This menu is activated
  1547.  
  1548.        +o by pressing and holding the `DDiissppllaayy' button, or
  1549.  
  1550.        +o by pressing _m_o_u_s_e _b_u_t_t_o_n _3 on some display and selecting
  1551.          `NNeeww DDiissppllaayy', or
  1552.  
  1553.        +o by pressing SShhiifftt and _m_o_u_s_e _b_u_t_t_o_n _3 on some display.
  1554.  
  1555.        By default, the shortcut  menu  contains  frequently  used
  1556.        base conversions.
  1557.  
  1558.        The  `OOtthheerr'  entry in the shortcut menu lets you create a
  1559.        new display that _e_x_t_e_n_d_s the shortcut menu.  As  an  exam-
  1560.        ple,  assume you have selected a display named `ddaattee__ppttrr'.
  1561.        Selecting `DDiissppllaayy-->>OOtthheerr' pops up a  dialog  that  allows
  1562.        you  to  enter  a  new  expression  to be displayed -- for
  1563.        instance, you can cast the display  `ddaattee__ppttrr'  to  a  new
  1564.        display  `((cchhaarr **))ddaattee__ppttrr'.  If the `IInncclluuddee iinn ``NNeeww DDiiss--
  1565.        ppllaayy' Menu' toggle was activated, the shortcut  menu  will
  1566.        then  contain  a  new entry `DDiissppllaayy ((cchhaarr **))(())' that will
  1567.        cast _a_n_y selected display _d_i_s_p_l_a_y  to  `((cchhaarr  **))_d_i_s_p_l_a_y'.
  1568.        Such  shortcuts  can save you a lot of time when examining
  1569.        complex data structures.
  1570.  
  1571.  
  1572.        You can edit the contents of the  `NNeeww  DDiissppllaayy'  menu  by
  1573.        selecting its `EEddiitt MMeennuu' item.  This pops up the _S_h_o_r_t_c_u_t
  1574.        _E_d_i_t_o_r containing all shortcut expressions, which you  can
  1575.        edit  at  leisure.   Each line contains the expression for
  1576.        exactly one menu item.  Clicking on `AAppppllyy' re-creates the
  1577.        `NNeeww  DDiissppllaayy'  menu from the text.  If the text is empty,
  1578.        the `NNeeww DDiissppllaayy' menu will be empty, too.
  1579.  
  1580.  
  1581.  
  1582. DDD 3.1.1                   1998-12-06                         24
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588. ddd(1)                                                     ddd(1)
  1589.  
  1590.  
  1591.        DDD also allows you to specify individual labels for user-
  1592.        defined  buttons.   You  can  write such a label after the
  1593.        expression, separated by `////'.  This feature  is  used  in
  1594.        the  default contents of the GDB `NNeeww DDiissppllaayy' menu, where
  1595.        each of the base conversions has a label:
  1596.  
  1597.            //tt (()) //// CCoonnvveerrtt ttoo BBiinn
  1598.            //dd (()) //// CCoonnvveerrtt ttoo DDeecc
  1599.            //xx (()) //// CCoonnvveerrtt ttoo HHeexx
  1600.            //oo (()) //// CCoonnvveerrtt ttoo OOcctt
  1601.  
  1602.        Feel free to add other conversions here.  DDD supports  up
  1603.        to 20 `NNeeww DDiissppllaayy' menu items.
  1604.  
  1605.    DDeerreeffeerreenncciinngg PPooiinntteerrss
  1606.        There  are  special  shortcuts for creating dependent dis-
  1607.        plays showing the value of a dereferenced  pointer.   This
  1608.        allows  for rapid examination of pointer-based data struc-
  1609.        tures.
  1610.  
  1611.        To dereference a pointer, select the  originating  pointer
  1612.        value  or  name  and click on the `DDiissppllaayy **(())' button.  A
  1613.        new display showing the dereferenced pointer value is cre-
  1614.        ated.
  1615.  
  1616.        As a faster alternative, you can also press _m_o_u_s_e _b_u_t_t_o_n _3
  1617.        on the originating pointer value or name  and  select  the
  1618.        `DDiissppllaayy **' menu item.
  1619.  
  1620.        As  an  even faster alternative, you can also double-click
  1621.        _m_o_u_s_e _b_u_t_t_o_n _1 on the originating pointer value  or  name.
  1622.        If  you press CCttrrll while double-clicking, the display will
  1623.        be dereferenced _i_n _p_l_a_c_e--that is, it will be replaced  by
  1624.        the dereferenced display.
  1625.  
  1626.        The  `DDiissppllaayy **(())' function is also accessible by pressing
  1627.        and holding the `DDiissppllaayy (())' button.
  1628.  
  1629.    DDiissppllaayyiinngg LLooccaall VVaarriiaabblleess
  1630.        You can display all local variables at  once  by  choosing
  1631.        `DDaattaa-->>DDiissppllaayy  LLooccaall  VVaarriiaabblleess'.   When  using DBX, XDB,
  1632.        JDB, or Perl, this displays all local variables, including
  1633.        the  arguments of the current function.  When using GDB or
  1634.        PYDB, function arguments are contained in a separate  dis-
  1635.        play, activated by `DDiissppllaayy AArrgguummeennttss'.
  1636.  
  1637.        The display showing the local variables can be manipulated
  1638.        just like any other data  display.   Individual  variables
  1639.        can be selected and dereferenced.
  1640.  
  1641.  
  1642.  
  1643.    DDiissppllaayyiinngg PPrrooggrraamm SSttaattuuss
  1644.        You  can  create a display from the output of an arbitrary
  1645.  
  1646.  
  1647.  
  1648. DDD 3.1.1                   1998-12-06                         25
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. ddd(1)                                                     ddd(1)
  1655.  
  1656.  
  1657.        debugger command.  By entering
  1658.  
  1659.          ggrraapphh ddiissppllaayy ``_c_o_m_m_a_n_d``
  1660.  
  1661.        the output of _c_o_m_m_a_n_d is  turned  into  a  _s_t_a_t_u_s  _d_i_s_p_l_a_y
  1662.        updated each time the program stops.  For instance,
  1663.  
  1664.          ggrraapphh ddiissppllaayy ``wwhheerree``
  1665.  
  1666.        creates a status display named `WWhheerree' that shows the cur-
  1667.        rent backtrace.
  1668.  
  1669.        If you are using GDB, DDD provides a panel from which  you
  1670.        can  choose  useful  status  displays.  Select `DDaattaa-->>MMoorree
  1671.        SSttaattuuss DDiissppllaayyss' and pick your choice from the list.
  1672.  
  1673.  
  1674.        Status displays consume time; you should  delete  them  as
  1675.        soon as you don't need them any more.
  1676.  
  1677.    DDiissppllaayyiinngg MMuullttiippllee AArrrraayy VVaalluueess
  1678.        When  debugging  C  or C++ programs, one often has to deal
  1679.        with pointers to arrays of  dynamically  determined  size.
  1680.        Both  DDD and GDB provide special support for such dynamic
  1681.        arrays.
  1682.  
  1683.        To display several successive objects of the same type  (a
  1684.        section of an array, or an array of dynamically determined
  1685.        size), use the notation [[_F_R_O_M...._T_O]] in display expressions.
  1686.        _F_R_O_M  and  _T_O  denote the first and last array position to
  1687.        display.  Thus,
  1688.  
  1689.          ggrraapphh ddiissppllaayy aarrggvv[[00....99]]
  1690.  
  1691.        creates ten new display nodes  for  `aarrggvv[[00]]',  `aarrggvv[[11]]',
  1692.        ..., `aarrggvv[[99]]'.
  1693.  
  1694.        Using  GDB  as  inferior  debugger, you can use _a_r_t_i_f_i_c_i_a_l
  1695.        _a_r_r_a_y_s.  Typing
  1696.  
  1697.          ggrraapphh ddiissppllaayy aarrggvv[[00]] @@ 1100
  1698.  
  1699.        creates a single array display node  containing  `aarrggvv[[00]]'
  1700.        up  to  `aarrggvv[[99]]'.   Generally, by using the `@@' operator,
  1701.        you can specify the number of array elements  to  be  dis-
  1702.        played.
  1703.  
  1704.        For  more  details on artificial arrays, see the GDB docu-
  1705.        mentation.
  1706.  
  1707.    RReeppeeaatteedd AArrrraayy VVaalluueess
  1708.        Using GDB, an array value that  is  repeated  10  or  more
  1709.        times  is  displayed only once.  The value is shown with a
  1710.        `<<_Nxx>>' postfix added, where _N is the number of  times  the
  1711.  
  1712.  
  1713.  
  1714. DDD 3.1.1                   1998-12-06                         26
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720. ddd(1)                                                     ddd(1)
  1721.  
  1722.  
  1723.        value  is  repeated.  Thus, the display `00xx00 <<3300xx>>' stands
  1724.        for 30 array elements, each  with  the  value  00xx00.   This
  1725.        saves  a lot of display space, especially with homogeneous
  1726.        arrays.
  1727.  
  1728.  
  1729.        The default GDB threshold for repeated array values is 10.
  1730.        You  can  change it via `EEddiitt-->>GGDDBB SSeettttiinnggss-->>TThhrreesshhoolldd ffoorr
  1731.        rreeppeeaatteedd pprriinntt eelleemmeennttss'.  Setting the threshold to 00 will
  1732.        cause GDB (and DDD) to display each array element individ-
  1733.        ually.   Be  sure  to  refresh   the   data   window   via
  1734.        `DDaattaa-->>RReeffrreesshh DDiissppllaayyss' after a change in GDB settings.
  1735.  
  1736.        You  can  also configure DDD to display each array element
  1737.        individually,  regardless  of  GDB   settings;   see   the
  1738.        `eexxppaannddRReeppeeaatteeddVVaalluueess' resource for details.
  1739.  
  1740.    AAlltteerriinngg VVaarriiaabbllee VVaalluueess
  1741.        Using  the `SSeett (())' button or the `SSeett VVaalluuee' menu item in
  1742.        the data popup menu,  you  can  alter  the  value  of  the
  1743.        selected  variable,  to  resume execution with the changed
  1744.        value.  In a dialog, you can modify the variable value  at
  1745.        will;  clicking  the  `OOKK'  or `AAppppllyy' button commits your
  1746.        change.
  1747.  
  1748.  
  1749.        If you made a mistake, you can use `EEddiitt-->>UUnnddoo' to  re-set
  1750.        the variable to its previous value.
  1751.  
  1752.        Note: Altering variable values is not supported in JDB.
  1753.  
  1754.    RReeffrreesshhiinngg tthhee DDaattaa WWiinnddooww
  1755.        The  data  window refreshes itself automatically each time
  1756.        the program stops.  Values that  have  changed  are  high-
  1757.        lighted.
  1758.  
  1759.        However,  there may be situations where you should refresh
  1760.        the data window explicitly.  This is especially  the  case
  1761.        whenever  you  changed debugger settings that could affect
  1762.        the data format, and want the data window to reflect these
  1763.        settings.
  1764.  
  1765.        You   can   refresh   the   data   window   by   selecting
  1766.        `DDaattaa-->>RReeffrreesshh DDiissppllaayyss'.
  1767.  
  1768.        As an alternative, you can press _m_o_u_s_e  _b_u_t_t_o_n  _3  on  the
  1769.        background of the data window and select the `RReeffrreesshh DDiiss--
  1770.        ppllaayy' item.
  1771.  
  1772.        Typing
  1773.  
  1774.          ggrraapphh rreeffrreesshh
  1775.  
  1776.        at the debugger prompt has the same effect.
  1777.  
  1778.  
  1779.  
  1780. DDD 3.1.1                   1998-12-06                         27
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786. ddd(1)                                                     ddd(1)
  1787.  
  1788.  
  1789.    DDeelleettiinngg DDiissppllaayyss
  1790.        To delete a single display, select it  and  click  on  the
  1791.        `DDeelleettee (())' button.  As an alternative, you can also press
  1792.        _m_o_u_s_e _b_u_t_t_o_n _3 on the display and select the `DDeelleettee  DDiiss--
  1793.        ppllaayy' item.
  1794.  
  1795.        When  a  display  is  deleted, its immediate ancestors and
  1796.        descendants are automatically selected, so  that  you  can
  1797.        easily delete entire graphs.
  1798.  
  1799.        To  delete  several  displays at once, select the `DDeelleettee'
  1800.        item in the Display Editor (invoked via  `DDaattaa-->>EEddiitt  DDiiss--
  1801.        ppllaayyss').   Select any number of display items in the usual
  1802.        way and delete them by pressing `DDeelleettee'.
  1803.  
  1804.        As an alternative, you can also type
  1805.  
  1806.          ggrraapphh uunnddiissppllaayy _d_i_s_p_l_a_y_s_._._.
  1807.  
  1808.        at the debugger prompt.  _d_i_s_p_l_a_y_s_._._. is either
  1809.  
  1810.        +o a space-separated list of display numbers to delete, or
  1811.  
  1812.        +o a single display name.  If  you  specify  a  display  by
  1813.          name, all displays with this name will be deleted.
  1814.  
  1815.        If  you  are using stacked windows, deleting the last dis-
  1816.        play from the data window also  automatically  closes  the
  1817.        data     window.      (You    can    change    this    via
  1818.        `EEddiitt-->>PPrreeffeerreenncceess-->>DDaattaa-->>CClloossee ddaattaa wwiinnddooww wwhheenn  ddeelleettiinngg
  1819.        llaasstt ddiissppllaayy'.)
  1820.  
  1821.        If  you  deleted a display by mistake, use `EEddiitt-->>UUnnddoo' to
  1822.        re-create it.
  1823.  
  1824.    EExxaammiinniinngg SShhaarreedd DDaattaa SSttrruuccttuurreess
  1825.        By default, DDD does  not  recognize  shared  data  struc-
  1826.        tures--that is, a data object referenced by multiple other
  1827.        data objects.  For instance, if two  pointers  pp11  and  pp22
  1828.        point at the same data object dd, the data displays dd, **pp11,
  1829.        and **pp22 will be separate, although they  denote  the  same
  1830.        object.
  1831.  
  1832.        DDD  provides  a  special mode which makes it detect these
  1833.        situations.  DDD recognizes if two or more  data  displays
  1834.        are  stored  at  the same physical address, and if this is
  1835.        so, merges all these _a_l_i_a_s_e_s into one single data display,
  1836.        the  _o_r_i_g_i_n_a_l  _d_a_t_a  _d_i_s_p_l_a_y.   This  mode is called _A_l_i_a_s
  1837.        _D_e_t_e_c_t_i_o_n; it is enabled via the `DDaattaa-->>DDeetteecctt AAlliiaasseess'.
  1838.  
  1839.        When alias detection is enabled, DDD inquires  the  memory
  1840.        location  (the  _a_d_d_r_e_s_s)  of  each data display after each
  1841.        program step.  If two displays have the same address, they
  1842.        are  merged  into  one.   More  specifically, only the one
  1843.  
  1844.  
  1845.  
  1846. DDD 3.1.1                   1998-12-06                         28
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852. ddd(1)                                                     ddd(1)
  1853.  
  1854.  
  1855.        which has least recently  changed  remains  (the  _o_r_i_g_i_n_a_l
  1856.        _d_a_t_a _d_i_s_p_l_a_y); all other aliases are _s_u_p_p_r_e_s_s_e_d, i.e. com-
  1857.        pletely hidden.  The edges  leading  to  the  aliases  are
  1858.        replaced by edges leading to the original data display.
  1859.  
  1860.        An  edge  created  by alias detection is somewhat special:
  1861.        rather than connecting  two  displays  directly,  it  goes
  1862.        through an _e_d_g_e _h_i_n_t, describing an arc connecting the two
  1863.        displays and the edge hint.
  1864.  
  1865.        Each edge hint is a placeholder for  a  suppressed  alias;
  1866.        selecting  an  edge  hint  is  equivalent to selecting the
  1867.        alias.  This way, you can easily delete display aliases by
  1868.        simply  selecting the edge hint and clicking on `UUnnddiissppllaayy
  1869.        (())'.
  1870.  
  1871.  
  1872.        To access suppressed display aliases, you can also use the
  1873.        Display  Editor.   Suppressed  displays  are listed in the
  1874.        Display Editor as _a_l_i_a_s_e_s of the  original  data  display.
  1875.        Via the Display Editor, you can select, change, and delete
  1876.        suppressed displays.
  1877.  
  1878.        Suppressed displays become visible again as soon as
  1879.  
  1880.        +o alias detection is disabled,
  1881.  
  1882.        +o their  address  changes  such  that  they  are  no  more
  1883.          aliases, or
  1884.  
  1885.        +o the  original  data  display  is  deleted, such that the
  1886.          least recently changed alias becomes  the  new  original
  1887.          data display.
  1888.  
  1889.        Please note the following _c_a_v_e_a_t_s with alias detection:
  1890.  
  1891.        +o Alias  detection  requires  that the current programming
  1892.          language provides a means to determine the address of an
  1893.          arbitrary  data  object.   Currently, only C and C++ are
  1894.          supported.
  1895.  
  1896.        +o Some inferior debuggers (for instance, SunOS  DBX)  pro-
  1897.          duce  incorrect output for address expressions.  Given a
  1898.          pointer _p, you may verify the correct function  of  your
  1899.          inferior  debugger  by  comparing the values of _p and &&_p
  1900.          (unless _p actually points  to  itself).   You  can  also
  1901.          examine the data display addresses, as shown in the Dis-
  1902.          play Editor.
  1903.  
  1904.        +o Alias detection slows down DDD slightly, which is why it
  1905.          is  disabled  by default.  You may consider to enable it
  1906.          only at need--for instance, while examining some complex
  1907.          data  structure--and  disable it while examining control
  1908.          flow (i.e., stepping through your  program).   DDD  will
  1909.  
  1910.  
  1911.  
  1912. DDD 3.1.1                   1998-12-06                         29
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918. ddd(1)                                                     ddd(1)
  1919.  
  1920.  
  1921.          automatically  restore  edges  and  data  displays  when
  1922.          switching modes.
  1923.  
  1924.  
  1925.    CClluusstteerriinngg DDiissppllaayyss
  1926.        If you examine several variables at once, having  a  sepa-
  1927.        rate  display for each of them uses a lot of screen space.
  1928.        This is why DDD supports _c_l_u_s_t_e_r_s.  A cluster merges  sev-
  1929.        eral logical data displays into one physical display, sav-
  1930.        ing screen space.
  1931.  
  1932.        There are two ways to create clusters:
  1933.  
  1934.        +o You can create  clusters  _m_a_n_u_a_l_l_y.   This  is  done  by
  1935.          selecting  the  displays  to  be  clustered and choosing
  1936.          `UUnnddiisspp-->>CClluusstteerr (())'.  This creates a new  cluster  from
  1937.          all  selected  displays.  If an already existing cluster
  1938.          is selected, too, the selected displays  will  be  clus-
  1939.          tered into the selected cluster.
  1940.  
  1941.        +o You  can create a cluster _a_u_t_o_m_a_t_i_c_a_l_l_y for all indepen-
  1942.          dent data displays, such that all new data displays will
  1943.          automatically  be  clustered,  too.  This is achieved by
  1944.          enabling  `EEddiitt-->>PPrreeffeerreenncceess-->>DDaattaa-->>CClluusstteerr  DDaattaa   DDiiss--
  1945.          ppllaayyss'.
  1946.  
  1947.  
  1948.        Displays in a cluster can be selected and manipulated like
  1949.        parts of an ordinary display; in particular, you can  show
  1950.        and hide details, or dereference pointers.  However, edges
  1951.        leading to clustered displays can not be  shown,  and  you
  1952.        must either select one or all clustered displays.
  1953.  
  1954.        Disabling  a  cluster  is  called _u_n_c_l_u_s_t_e_r_i_n_g, and again,
  1955.        there are two ways of doing it:
  1956.  
  1957.        +o You can uncluster displays _m_a_n_u_a_l_l_y,  by  selecting  the
  1958.          cluster and choosing `UUnnddiisspp-->>UUnncclluusstteerr (())'.
  1959.  
  1960.        +o You  can  uncluster  all  current and future displays by
  1961.          disabling  `EEddiitt-->>PPrreeffeerreenncceess-->>DDaattaa-->>CClluusstteerr  DDaattaa  DDiiss--
  1962.          ppllaayyss'.
  1963.  
  1964.  
  1965.    MMoovviinngg DDiissppllaayyss AArroouunndd
  1966.        From  time  to  time,  you  may  wish  to move displays at
  1967.        another place in the data window.  You can move  a  single
  1968.        display by pressing and holding _m_o_u_s_e _b_u_t_t_o_n _1 on the dis-
  1969.        play title.  Moving the pointer while holding  the  button
  1970.        causes  all  selected  displays  to  move  along  with the
  1971.        pointer.
  1972.  
  1973.        If the data window becomes too small to hold all displays,
  1974.        scroll  bars  are  created.   If your DDD is set up to use
  1975.  
  1976.  
  1977.  
  1978. DDD 3.1.1                   1998-12-06                         30
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984. ddd(1)                                                     ddd(1)
  1985.  
  1986.  
  1987.        _p_a_n_n_e_r_s instead, a panner is created in  the  lower  right
  1988.        edge.   When  the  panner is moved around, the window view
  1989.        follows the position  of  the  panner.   See  `CCUUSSTTOOMMIIZZIINNGG
  1990.        DDDDDD',  below,  for details on how to set up scroll bars or
  1991.        panners.
  1992.  
  1993.        For fine-grain movements, selected displays  may  also  be
  1994.        moved  using  the arrow keys.  Pressing SShhiifftt and an arrow
  1995.        key moves displays by single pixels.   Pressing  CCttrrll  and
  1996.        arrow keys moves displays by grid positions.
  1997.  
  1998.        Edge  hints  can  be  selected and moved around like other
  1999.        displays.  If an arc goes through the edge hint,  you  can
  2000.        change  the  shape  of  the  arc  by  moving the edge hint
  2001.        around.
  2002.  
  2003.    AAlliiggnniinngg DDiissppllaayyss
  2004.        You can align all displays on the nearest grid position by
  2005.        selecting `DDaattaa-->>AAlliiggnn oonn GGrriidd'.  This is useful for keep-
  2006.        ing edges horizontal or vertical.
  2007.  
  2008.        You     can     enforce     alignment     by     selecting
  2009.        `EEddiitt-->>PPrreeffeerreenncceess-->>DDaattaa-->>AAuuttoo--aalliiggnn  ddiissppllaayyss  oonn nneeaarreesstt
  2010.        ggrriidd ppooiinntt'.  If this feature is enabled, displays can  be
  2011.        moved on grid positions only.
  2012.  
  2013.    LLaayyoouuttiinngg tthhee DDiissppllaayy GGrraapphh
  2014.        You  can  layout  the  entire graph as a tree by selecting
  2015.        `DDaattaa-->>LLaayyoouutt GGrraapphh'.
  2016.  
  2017.        Layouting the graph may introduce  _e_d_g_e  _h_i_n_t_s;  that  is,
  2018.        edges are no more straight lines, but lead to an edge hint
  2019.        and from there to their destination.  Edge  hints  can  be
  2020.        moved around like arbitrary displays.
  2021.  
  2022.        To   enable  a  more  compact  layout,  you  can  set  the
  2023.        `EEddiitt-->>PPrreeffeerreenncceess-->>DDaattaa-->>CCoommppaacctt  llaayyoouutt'  option.   This
  2024.        realizes  an  alternate layout algorithm, where successors
  2025.        are placed next to their parents.  This algorithm is suit-
  2026.        able for homogeneous data structures only.
  2027.  
  2028.        You      can      enforce      layout      by      setting
  2029.        `EEddiitt-->>PPrreeffeerreenncceess-->>DDaattaa-->> AAuuttoommaattiicc  LLaayyoouutt'.   If  auto-
  2030.        matic  layout is enabled, the graph is layouted after each
  2031.        change.
  2032.  
  2033.  
  2034.    RRoottaattiinngg tthhee DDiissppllaayy GGrraapphh
  2035.        You can rotate the entire graph clockwise by 90 degrees by
  2036.        selecting `DDaattaa-->>RRoottaattee GGrraapphh'.
  2037.  
  2038.        If the graph was previously layouted, you may need to lay-
  2039.        out it again.  Subsequent layouts will respect the  direc-
  2040.        tion of the last rotation.
  2041.  
  2042.  
  2043.  
  2044. DDD 3.1.1                   1998-12-06                         31
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050. ddd(1)                                                     ddd(1)
  2051.  
  2052.  
  2053.    PPrriinnttiinngg tthhee DDiissppllaayy GGrraapphh
  2054.        DDD  allows  for  printing the graph picture on PostScript
  2055.        printers or into files.  This is  useful  for  documenting
  2056.        program states.
  2057.  
  2058.  
  2059.        To  print  the  graph  on  a  PostScript  printer,  select
  2060.        `FFiillee-->>PPrriinntt GGrraapphh'.  Enter the printing  command  in  the
  2061.        `PPrriinntt  CCoommmmaanndd'  field.  Click on the `OOKK' or the `AAppppllyy'
  2062.        button to start printing.
  2063.  
  2064.        As an alternative, you may also print the graph in a file.
  2065.        Click  on the `FFiillee' button and enter the file name in the
  2066.        `FFiillee NNaammee' field.  Click on the `PPrriinntt' button to  create
  2067.        the file.
  2068.  
  2069.        When  the  graph  is  printed  in  a file, two formats are
  2070.        available:
  2071.  
  2072.        +o PPoossttSSccrriipptt--suitable for enclosing the graph in  another
  2073.          document;
  2074.  
  2075.        +o FFIIGG--suitable   for   post-processing,  using  the  XFIG
  2076.          graphic editor, or for  conversion  into  other  formats
  2077.          (among  others IBMGL, LATEX, PIC), using the TRANSFIG or
  2078.          FIG2DEV package.
  2079.  
  2080.  
  2081.        Please note the  following  _c_a_v_e_a_t_s  related  to  printing
  2082.        graphs:
  2083.  
  2084.        +o If  any displays were selected when invoking the `PPrriinntt'
  2085.          dialog, the option `SSeelleecctteedd OOnnllyy' is set.   This  makes
  2086.          DDD print only the selected displays.
  2087.  
  2088.        +o The `CCoolloorr', `OOrriieennttaattiioonn', and `PPaappeerr SSiizzee' options are
  2089.          meaningful for PostScript only.
  2090.  
  2091.  
  2092. PPLLOOTTTTIINNGG DDAATTAA
  2093.        If you have huge amounts of numerical data to  examine,  a
  2094.        picture  often  says more than a thousand numbers.  There-
  2095.        fore, DDD allows you to draw numerical values in nice  2-D
  2096.        and 3-D plots.
  2097.  
  2098.    PPlloottttiinngg AArrrraayyss
  2099.        Basically, DDD can plot two types of numerical values:
  2100.  
  2101.        +o One-dimensional  arrays.   These  are drawn in a 2-D _X/_Y
  2102.          space, where _X denotes the array index, and _Y  the  ele-
  2103.          ment value.
  2104.  
  2105.        +o Two-dimensional  arrays.  These are drawn in a 3-D _X/_Y/_Z
  2106.          space, where _X and _Y denote the array indexes, and _Z the
  2107.  
  2108.  
  2109.  
  2110. DDD 3.1.1                   1998-12-06                         32
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116. ddd(1)                                                     ddd(1)
  2117.  
  2118.  
  2119.          element value.
  2120.  
  2121.        To  plot an array, select it by clicking _m_o_u_s_e _b_u_t_t_o_n _1 on
  2122.        an occurrence.  The array name is copied to  the  argument
  2123.        field.   By  clicking  the `PPlloott' button, a new display is
  2124.        created in the data window, followed by  a  new  top-level
  2125.        window containing the value plot.
  2126.  
  2127.        Each  time the value changes during program execution, the
  2128.        plot is updated to reflect the current values.   The  plot
  2129.        window   remains   active   until   you   close   it  (via
  2130.        `FFiillee-->>CClloossee') or until the associated display is deleted.
  2131.  
  2132.    CChhaannggiinngg tthhee PPlloott AAppppeeaarraannccee
  2133.        The  actual  drawing  is not done by DDD itself.  Instead,
  2134.        DDD relies on an external Gnuplot program  to  create  the
  2135.        drawing.   DDD  adds a menu bar to the Gnuplot plot window
  2136.        that lets you influence the appearance of the plot:
  2137.  
  2138.        +o The `VViieeww' menu toggles optional parts of the plot, such
  2139.          as border lines or a background grid.
  2140.  
  2141.        +o The  `PPlloott'  menu  changes the plotting style.  The `33--DD
  2142.          LLiinneess' option is  useful  for  plotting  two-dimensional
  2143.          arrays.
  2144.  
  2145.        +o The  `SSccaallee' menu allows you to enable logarithmic scal-
  2146.          ing and to enable or disable the scale tics.
  2147.  
  2148.        +o The `CCoonnttoouurr' menu adds contour lines to 3-D plots.
  2149.  
  2150.        You can also resize the plot window as desired.
  2151.  
  2152.        In a 3-D plot, you can use the scroll bars to change  your
  2153.        view position.  The horizontal scroll bar rotates the plot
  2154.        around the _Z axis, that is, to the left  and  right.   The
  2155.        vertical  scroll  bar  rotates the plot around the _Y axis,
  2156.        that is, up and down.
  2157.  
  2158.  
  2159.    PPlloottttiinngg SSccaallaarrss aanndd CCoommppoossiitteess
  2160.        Besides plotting arrays,  DDD  also  allows  you  to  plot
  2161.        scalars  (simple  numerical values).  This works just like
  2162.        plotting arrays--you select the numerical variable,  click
  2163.        on  `PPlloott',  and here comes the plot.  However, plotting a
  2164.        scalar is not very exciting.  A plot that contains nothing
  2165.        but  a  scalar simply draws the scalar's value as a _Y con-
  2166.        stant--that is, a horizontal line.
  2167.  
  2168.        So why care about scalars at all?  DDD allows you to  com-
  2169.        bine multiple values into one plot.  The basic idea is: if
  2170.        you want to plot something that is neither an array nor  a
  2171.        scalar, DDD takes all numerical sub-values it can find and
  2172.        plots them all together in one window.  For instance,  you
  2173.  
  2174.  
  2175.  
  2176. DDD 3.1.1                   1998-12-06                         33
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182. ddd(1)                                                     ddd(1)
  2183.  
  2184.  
  2185.        can  plot  all local variables by selecting `DDaattaa-->>DDiissppllaayy
  2186.        LLooccaall VVaarriiaabblleess', followed by `PPlloott'.  This will create  a
  2187.        plot  containing all numerical values as found in the cur-
  2188.        rent local variables.  Likewise, you can plot all  numeric
  2189.        members contained in a structure by selecting it, followed
  2190.        by `PPlloott'.
  2191.  
  2192.        If you want more control about what to include in  a  plot
  2193.        and  what  not, you can use display clusters.  (See `CClluuss--
  2194.        tteerriinngg DDiissppllaayyss', above, for details on clusters.)  A com-
  2195.        mon  scenario  is to plot a one-dimensional array together
  2196.        with the current index position.  This is  done  in  three
  2197.        steps:
  2198.  
  2199.        +o Display the array and the index, using `DDiissppllaayy (())'.
  2200.  
  2201.        +o Cluster   both   displays:   select   them   and  choose
  2202.          `UUnnddiisspp-->>CClluusstteerr (())'.
  2203.  
  2204.        +o Plot the cluster by pressing `PPlloott'.
  2205.  
  2206.        Scalars that are displayed together  with  arrays  can  be
  2207.        displayed  either  as  vertical lines or horizontal lines.
  2208.        By default, scalars are plotted as horizontal lines.  How-
  2209.        ever,  if  a scalar is a valid index for an array that was
  2210.        previously plotted, it is shown as a vertical  line.   You
  2211.        can  change this initial alignment by selecting the scalar
  2212.        display, followed by `RRoottaattee (())'.
  2213.  
  2214.    PPlloottttiinngg DDiissppllaayy HHiissttoorriieess
  2215.        At each program stop, DDD records the values of  all  dis-
  2216.        played variables.  These _d_i_s_p_l_a_y _h_i_s_t_o_r_i_e_s can be plotted,
  2217.        too.  The menu item `PPlloott-->>PPlloott hhiissttoorryy ooff (())'  creates  a
  2218.        plot  that  shows  all  previously  recorded values of the
  2219.        selected display.
  2220.  
  2221.    PPrriinnttiinngg PPlloottss
  2222.        If you want to print the plot, select `FFiillee-->>PPrriinntt  PPlloott'.
  2223.        This  pops up the DDD printing dialog, set up for printing
  2224.        plots.  Just as when printing graphs, you have the  choice
  2225.        between  printing  to  a  printer or a file and setting up
  2226.        appropriate options.
  2227.  
  2228.        The actual printing is also performed  by  Gnuplot,  using
  2229.        the appropriate driver.  Please note the following caveats
  2230.        related to printing:
  2231.  
  2232.        +o Creating FFIIGG files requires an appropriate driver  built
  2233.          into Gnuplot.  Your Gnuplot program may not contain such
  2234.          a driver.  In this case, you will have to recompile Gnu-
  2235.          plot,  including  the  line `##ddeeffiinnee FFIIGG' in the Gnuplot
  2236.          `tteerrmm..hh' file.
  2237.  
  2238.        +o The `PPoorrttrraaiitt' option generates an EEPPSS file  useful  for
  2239.  
  2240.  
  2241.  
  2242. DDD 3.1.1                   1998-12-06                         34
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248. ddd(1)                                                     ddd(1)
  2249.  
  2250.  
  2251.          inclusion  in  other  documents.  The `LLaannddssccaappee' option
  2252.          makes DDD print the plot in the size  specified  in  the
  2253.          `PPaappeerr  SSiizzee'  option;  this is useful for printing on a
  2254.          printer.  In `PPoorrttrraaiitt' mode, the `PPaappeerr SSiizzee' option is
  2255.          ignored.
  2256.  
  2257.        +o The  PostScript  and X11 drivers each have their own set
  2258.          of colors, such that the printed colors may differ  from
  2259.          the displayed colors.
  2260.  
  2261.        +o The  `SSeelleecctteedd OOnnllyy' option is set by default, such that
  2262.          only the currently selected plot is  printed.   (If  you
  2263.          select multiple plots to be printed, the respective out-
  2264.          puts will all be concatenated, which may not be what you
  2265.          desire.)
  2266.  
  2267.  
  2268.    EEnntteerriinngg PPlloottttiinngg CCoommmmaannddss
  2269.        Via   `FFiillee-->>CCoommmmaanndd',  you  can  enter  Gnuplot  commands
  2270.        directly.  Each command entered at the  `ggnnuupplloott>>'  prompt
  2271.        is  passed to Gnuplot, followed by a Gnuplot `rreepplloott' com-
  2272.        mand to update the view.  This is useful for advanced Gnu-
  2273.        plot tasks.
  2274.  
  2275.        Here's  a simple example.  The Gnuplot command `sseett xxrraannggee
  2276.        [[_x_m_i_n::_x_m_a_x]]' sets the horizontal range that will  be  dis-
  2277.        played  to  _x_m_i_n..._x_m_a_x.   To plot only the elements 10 to
  2278.        20, enter:
  2279.  
  2280.          gnuplot>sseett xxrraannggee [[1100::2200]]
  2281.  
  2282.        After each command entered, DDD adds a  `rreepplloott'  command,
  2283.        such that the plot is updated automatically.
  2284.  
  2285.        Here's  a more complex example.  The following sequence of
  2286.        Gnuplot commands saves the plot in LATEX format:
  2287.  
  2288.          gnuplot>sseett oouuttppuutt ""pplloott..tteexx"" # Set the output filename
  2289.          gnuplot>sseett tteerrmm llaatteexx        # Set the output format
  2290.          gnuplot>sseett tteerrmm xx1111          #  Show  original  picture
  2291.        again
  2292.  
  2293.        Due  to the implicit `rreepplloott' command, the output is auto-
  2294.        matically written to `pplloott..tteexx' after the `sseett tteerrmm llaatteexx'
  2295.        command.
  2296.  
  2297.        The  dialog  keeps  track of the commands entered; use the
  2298.        arrow keys to restore previous  commands.   Gnuplot  error
  2299.        messages (if any) are also shown in the history area.
  2300.  
  2301.        The  interaction  between DDD and Gnuplot is logged in the
  2302.        file `$$HHOOMMEE//..dddddd//lloogg'.  The DDD `----ttrraaccee' option logs this
  2303.        interaction on standard output.
  2304.  
  2305.  
  2306.  
  2307.  
  2308. DDD 3.1.1                   1998-12-06                         35
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314. ddd(1)                                                     ddd(1)
  2315.  
  2316.  
  2317.    EExxppoorrttiinngg PPlloott DDaattaa
  2318.        If you want some external program to process the plot data
  2319.        (a stand-alone Gnuplot program or the  xxmmggrr  program,  for
  2320.        instance),  you  can  save  the plot data in a file, using
  2321.        `FFiillee-->>SSaavvee DDaattaa AAss'.  This pops up a dialog that lets you
  2322.        choose a data file to save the plotted data in.
  2323.  
  2324.        The  generated  file starts with a few comment lines.  The
  2325.        actual data follows in X/Y or X/Y/Z  format.   It  is  the
  2326.        same file as processed by Gnuplot.
  2327.  
  2328.    AAnniimmaattiinngg PPlloottss
  2329.        If  you want to see how your data evolves in time, you can
  2330.        set a breakpoint whose command sequence ends in  a  `ccoonntt'
  2331.        command.  Each time this "continue" breakpoint is reached,
  2332.        the program stops and DDD updates  the  displayed  values,
  2333.        including  the  plots.   Then, DDD executes the breakpoint
  2334.        command sequence, resuming execution.
  2335.  
  2336.        This way, you can set  a  "continue"  breakpoint  at  some
  2337.        decisive  point  within  an array-processing algorithm and
  2338.        have DDD display the progress graphically.  When your pro-
  2339.        gram has topped for good, you can use `UUnnddoo' and `Redo' to
  2340.        redisplay and examine previous program states.
  2341.  
  2342. MMAACCHHIINNEE--LLEEVVEELL DDEEBBUUGGGGIINNGG
  2343.        Note: Machine-level support is available with GDB only.
  2344.  
  2345.        Sometimes, it is desirable to examine a program  not  only
  2346.        at  the  source level, but also at the machine level.  DDD
  2347.        provides special machine code  and  register  windows  for
  2348.        this task.
  2349.  
  2350.    EExxaammiinniinngg MMaacchhiinnee CCooddee
  2351.        To  enable  machine-level support, select `SSoouurrccee-->>DDiissppllaayy
  2352.        MMaacchhiinnee CCooddee'.  With machine code enabled,  an  additional
  2353.        _m_a_c_h_i_n_e  _c_o_d_e _w_i_n_d_o_w shows up, displaying the machine code
  2354.        of the current function.  By moving the sash at the  right
  2355.        of  the  separating  line between source and machine code,
  2356.        you can resize the source and machine code windows.
  2357.  
  2358.  
  2359.        The machine code window works very much  like  the  source
  2360.        window.   You  can  set,  clear, and change breakpoints by
  2361.        selecting the address and pressing  a  `BBrreeaakk  aatt  (())'  or
  2362.        `CClleeaarr  aatt  (())'  button;  the  usual  popup menus are also
  2363.        available.  Breakpoints and the current execution position
  2364.        are  displayed  simultaneously  in both source and machine
  2365.        code.
  2366.  
  2367.        The `LLooookkuupp (())' button can be used to look up the  machine
  2368.        code  for  a specific function--or the function for a spe-
  2369.        cific address.  Just click on the location in  one  window
  2370.        and press `LLooookkuupp (())' to see the corresponding code in the
  2371.  
  2372.  
  2373.  
  2374. DDD 3.1.1                   1998-12-06                         36
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380. ddd(1)                                                     ddd(1)
  2381.  
  2382.  
  2383.        other window.
  2384.  
  2385.        The `mmaaxxDDiissaasssseemmbbllee' resource controls how much is  to  be
  2386.        disassembled.  If `mmaaxxDDiissaasssseemmbbllee' is set to 256 (default)
  2387.        and the current function is larger  than  256  bytes,  DDD
  2388.        only  disassembles  the  first 256 bytes below the current
  2389.        location.  You can set the `mmaaxxDDiissaasssseemmbbllee' resource to  a
  2390.        larger  value  if you prefer to have a larger machine code
  2391.        view.
  2392.  
  2393.        If source code is not available,  only  the  machine  code
  2394.        window is updated.
  2395.  
  2396.    EExxeeccuuttiioonn
  2397.        All execution facilities available in the source code win-
  2398.        dow are available in the machine code window as well.  Two
  2399.        special facilities are convenient for machine-level debug-
  2400.        ging:
  2401.  
  2402.        To execute just one  machine  instruction,  click  on  the
  2403.        `SStteeppii' button.
  2404.  
  2405.        To  continue  to the next instruction in the current func-
  2406.        tion, click on the `NNeexxttii' button.   This  is  similar  to
  2407.        `SStteeppii',  but  any  subroutine  calls are executed without
  2408.        stopping.
  2409.  
  2410.    RReeggiisstteerrss
  2411.        DDD provides a _r_e_g_i_s_t_e_r _w_i_n_d_o_w showing the machine  regis-
  2412.        ter  values after each program stop.  To enable the regis-
  2413.        ter window, select `SSttaattuuss-->>RReeggiisstteerrss'.
  2414.  
  2415.        By selecting one of the registers, its name is  copied  to
  2416.        the  argument field.  You can use it as value for `DDiissppllaayy
  2417.        (())', for instance, to have its value displayed in the data
  2418.        window.
  2419.  
  2420.  
  2421.    EExxaammiinniinngg MMeemmoorryy
  2422.        Using GDB or DBX, you can examine memory in any of several
  2423.        formats, independently of your program's data types.   The
  2424.        item  `DDaattaa-->>EExxaammiinnee MMeemmoorryy' pops up a panel where you can
  2425.        choose the format to be shown.
  2426.  
  2427.        You can enter
  2428.  
  2429.        +o a _r_e_p_e_a_t _c_o_u_n_t, a decimal  integer  that  specifies  how
  2430.          much memory (counting by units) to display
  2431.  
  2432.        +o a _d_i_s_p_l_a_y _f_o_r_m_a_t--one of
  2433.  
  2434.          ooccttaall     Print as integer in octal
  2435.  
  2436.          hheexx       Regard  the  bits  of the value as an integer,
  2437.  
  2438.  
  2439.  
  2440. DDD 3.1.1                   1998-12-06                         37
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446. ddd(1)                                                     ddd(1)
  2447.  
  2448.  
  2449.                    and print the integer in hexadecimal.
  2450.  
  2451.          ddeecciimmaall   Print as integer in signed decimal.
  2452.  
  2453.          uunnssiiggnneedd  Print as integer in unsigned decimal.
  2454.  
  2455.          bbiinnaarryy    Print as integer in binary.
  2456.  
  2457.          ffllooaatt     Regard the bits of the  value  as  a  floating
  2458.                    point  number and print using typical floating
  2459.                    point syntax.
  2460.  
  2461.          aaddddrreessss   Print as an address, both absolute in hexadec-
  2462.                    imal and as an offset from the nearest preced-
  2463.                    ing symbol.
  2464.  
  2465.          iinnssttrruuccttiioonn
  2466.                    Print as machine instructions.  The _u_n_i_t  _s_i_z_e
  2467.                    is ignored for this display format.
  2468.  
  2469.          cchhaarr      Regard as an integer and print it as a charac-
  2470.                    ter constant.
  2471.  
  2472.          ssttrriinngg    Print as  null-terminated  string.   The  _u_n_i_t
  2473.                    _s_i_z_e is ignored for this display format.
  2474.  
  2475.        +o a _u_n_i_t _s_i_z_e--one of
  2476.  
  2477.          bbyytteess     Bytes.
  2478.  
  2479.          hhaallffwwoorrddss Halfwords (two bytes).
  2480.  
  2481.          wwoorrddss     Words (four bytes).
  2482.  
  2483.          ggiiaannttss    Giant words (eight bytes).
  2484.  
  2485.        +o an  _a_d_d_r_e_s_s--the  starting display address.  The expres-
  2486.          sion need not have a pointer value (though it  may);  it
  2487.          is always interpreted as an integer address of a byte of
  2488.          memory.
  2489.  
  2490.        There are two ways to examine the values:
  2491.  
  2492.        +o You can dump the memory in the debugger  console  (using
  2493.          `PPrriinntt').   If  you  repeat the resulting `xx' command by
  2494.          pressing RREETTUURRNN, the following area of memory is  shown.
  2495.  
  2496.        +o You  can also display the memory dump in the data window
  2497.          (using `DDiissppllaayy').  If you choose to display the values,
  2498.          the  values  will be updated automatically each time the
  2499.          program stop.
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506. DDD 3.1.1                   1998-12-06                         38
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512. ddd(1)                                                     ddd(1)
  2513.  
  2514.  
  2515. EEDDIITTIINNGG SSOOUURRCCEE CCOODDEE
  2516.        In DDD itself, you cannot change the source file currently
  2517.        displayed.   Instead, DDD allows you to invoke a _t_e_x_t _e_d_i_-
  2518.        _t_o_r.  To invoke a text editor for the current source file,
  2519.        select the `EEddiitt' button or `SSoouurrccee-->>EEddiitt SSoouurrccee'.
  2520.  
  2521.        By default, DDD tries a number of common editors.  You can
  2522.        customize  DDD  to   use   your   favourite   editor   via
  2523.        `EEddiitt-->>PPrreeffeerreenncceess-->>HHeellppeerrss-->>EEddiitt SSoouurrcceess'.
  2524.  
  2525.        After  the  editor  has  exited,  the source code shown is
  2526.        automatically updated.
  2527.  
  2528.        If you have DDD and an editor running in parallel, you can
  2529.        also  update  the source code manually via `SSoouurrccee-->>RReellooaadd
  2530.        SSoouurrccee'.  This reloads the  source  code  shown  from  the
  2531.        source  file.   Since DDD automatically reloads the source
  2532.        code if the debugged program  has  been  recompiled,  this
  2533.        should seldom be necessary.
  2534.  
  2535. EENNTTEERRIINNGG CCOOMMMMAANNDDSS
  2536.        In the _d_e_b_u_g_g_e_r _c_o_n_s_o_l_e, you can interact with the command
  2537.        interface of the inferior debugger.  Enter commands at the
  2538.        _d_e_b_u_g_g_e_r  _p_r_o_m_p_t--that  is,  `((ggddbb))'  for GDB, `((ddbbxx))' for
  2539.        DBX, `>>' for XDB, `>>'  and  `_t_h_r_e_a_d[[_d_e_p_t_h]]'  for  JDB,  or
  2540.        `((PPyyddbb))'  for PYDB, or `DDBB<<>>' for Perl.  You can use arbi-
  2541.        trary debugger commands; use the RREETTUURRNN key to enter them.
  2542.  
  2543.  
  2544.        You  can _r_e_p_e_a_t previous and next commands by pressing the
  2545.        `UUpp' and `DDoowwnn' arrow keys, respectively.  If you enter an
  2546.        empty  line,  the last command is repeated as well.  `CCoomm--
  2547.        mmaannddss-->>CCoommmmaanndd HHiissttoorryy' shows the command history.
  2548.  
  2549.  
  2550.        You can _s_e_a_r_c_h for previous commands by  pressing  CCttrrll++BB.
  2551.        This  invokes _i_n_c_r_e_m_e_n_t_a_l _s_e_a_r_c_h _m_o_d_e_, where you can enter
  2552.        a string to  be  searched  in  previous  commands.   Press
  2553.        CCttrrll++BB  again to repeat the search, or CCttrrll++FF to search in
  2554.        the reverse direction.  To return to  normal  mode,  press
  2555.        EESSCC, or use any cursor command.
  2556.  
  2557.        Using  GDB  and  Perl,  you can also _c_o_m_p_l_e_t_e commands and
  2558.        arguments by pressing the TTAABB key; pressing  the  TTAABB  key
  2559.        multiple  times  shows  one  possible  expansion after the
  2560.        other.
  2561.  
  2562. CCUUSSTTOOMMIIZZIINNGG DDDDDD
  2563.        You can set up your personal DDD preferences by using  the
  2564.        `EEddiitt-->>PPrreeffeerreenncceess' menu from the menu bar.  These prefer-
  2565.        ences affect your running DDD  process  only,  unless  you
  2566.        save  these  preferences for a later DDD invocation.  Fre-
  2567.        quently used preferences can also be found in the individ-
  2568.        ual menus.
  2569.  
  2570.  
  2571.  
  2572. DDD 3.1.1                   1998-12-06                         39
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578. ddd(1)                                                     ddd(1)
  2579.  
  2580.  
  2581.    FFrreeqquueennttllyy UUsseedd PPrreeffeerreenncceess
  2582.        If  you  want  to  run your debugged process in a separate
  2583.        terminal emulator window, set `PPrrooggrraamm-->>RRuunn  iinn  EExxeeccuuttiioonn
  2584.        WWiinnddooww'.   This  is  useful for programs that have special
  2585.        terminal requirements not provided by the debugger window,
  2586.        as  raw keyboard processing or terminal control sequences.
  2587.  
  2588.        By default, DDD finds only complete words.  This is conve-
  2589.        nient for clicking on an identifier in the source text and
  2590.        search for exactly this identifier.  If you want  to  find
  2591.        all occurrences, including word parts, unset `SSoouurrccee-->>FFiinndd
  2592.        WWoorrddss OOnnllyy'.
  2593.  
  2594.        By default, DDD find is case-sensitive.   This  is  conve-
  2595.        nient  for  case-sensitive  programming languages.  If you
  2596.        want to find all occurrences, regardless  of  case,  unset
  2597.        `SSoouurrccee-->>FFiinndd CCaassee SSeennssiittiivvee'.
  2598.  
  2599.        If you wish to display machine code of selected functions,
  2600.        set `SSoouurrccee-->>DDiissppllaayy MMaacchhiinnee CCooddee'.  This makes DDD run  a
  2601.        little slower, so it is disabled by default.
  2602.  
  2603.        Through `EEddiitt-->>PPrreeffeerreenncceess', you can set up more DDD pref-
  2604.        erences, which are discussed here.
  2605.  
  2606.    GGeenneerraall PPrreeffeerreenncceess
  2607.        By default, when you move the pointer over a  button,  DDD
  2608.        gives  a  hint  on the button's meaning in a small window.
  2609.        This feature is known as _b_u_t_t_o_n _t_i_p_s (also known  as  _t_o_o_l
  2610.        _t_i_p_s  or  _b_a_l_l_o_o_n _h_e_l_p).  Experienced users may find these
  2611.        hints disturbing; this is why  you  can  disable  them  by
  2612.        unsetting  the `AAuuttoommaattiicc ddiissppllaayy ooff bbuuttttoonn hhiinnttss aass ppooppuupp
  2613.        ttiippss' option.
  2614.  
  2615.  
  2616.        The button hints are also displayed in  the  status  line.
  2617.        Disabling  hints  in  status line (by unsetting the `AAuuttoo--
  2618.        mmaattiicc ddiissppllaayy ooff bbuuttttoonn hhiinnttss iinn tthhee ssttaattuuss lliinnee'  option)
  2619.        and  disabling  button tips as well makes DDD run slightly
  2620.        faster.
  2621.  
  2622.        By default, when you move the pointer over a  variable  in
  2623.        the  source  code,  DDD  displays  the variable value in a
  2624.        small window.  Users may find these _v_a_l_u_e _t_i_p_s disturbing;
  2625.        this  is  why you can disable them by unsetting the `AAuuttoo--
  2626.        mmaattiicc ddiissppllaayy ooff vvaarriiaabbllee vvaalluueess aass ppooppuupp ttiippss' option.
  2627.  
  2628.        The variable values are also displayed in the status line.
  2629.        Disabling variable values in status line (by unsetting the
  2630.        `AAuuttoommaattiicc ddiissppllaayy ooff vvaarriiaabbllee vvaalluueess iinn tthhee ssttaattuuss  lliinnee'
  2631.        option) and disabling value tips as well will make DDD run
  2632.        slightly faster.
  2633.  
  2634.        If you want to use TTAABB key completion in all text windows,
  2635.  
  2636.  
  2637.  
  2638. DDD 3.1.1                   1998-12-06                         40
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644. ddd(1)                                                     ddd(1)
  2645.  
  2646.  
  2647.        set  the  `TTAABB kkeeyy ccoommpplleetteess iinn aallll wwiinnddoowwss' option.  This
  2648.        is useful if you have pointer-driven keyboard  focus  (see
  2649.        below)  and  no special usage for the TTAABB key.  Otherwise,
  2650.        the TTAABB key completes in the debugger console only.
  2651.  
  2652.        If you frequently switch  between  DDD  and  other  multi-
  2653.        window  applications, you may like to set the `IIccoonniiffyy aallll
  2654.        wwiinnddoowwss aatt oonnccee' option.  This way, all  DDD  windows  are
  2655.        iconified and deiconified as a group.
  2656.  
  2657.        If  you  want to keep DDD off your desktop during a longer
  2658.        computation, you may  like  to  set  the  `UUnniiccoonniiffyy  wwhheenn
  2659.        rreeaaddyy'  option.  This way, you can iconify DDD while it is
  2660.        busy on a command (e.g. running a program); DDD will auto-
  2661.        matically  pop  up  again after becoming ready (e.g. after
  2662.        the debugged program has stopped at a breakpoint).
  2663.  
  2664.        If you are bothered by X warnings, you can  suppress  them
  2665.        by setting the `SSuupppprreessss XX wwaarrnniinnggss' option.
  2666.  
  2667.        If  you  want  to be warned about multiple DDD invocations
  2668.        sharing the same preferences  and  history  files,  enable
  2669.        `WWaarrnn iiff MMuullttiippllee DDDDDD IInnssttaanncceess aarree RRuunnnniinngg'.
  2670.  
  2671.        When debugging a modal X application, DDD may interrupt it
  2672.        while it has grabbed the pointer, making further  interac-
  2673.        tion  impossible.   If  the  `CCoonnttiinnuuee  aauuttoommaattiiccaallllyy wwhheenn
  2674.        mmoouussee ppooiinntteerr iiss ffrroozzeenn' option is  set,  DDD  will  check
  2675.        after each interaction whether the pointer is grabbed.  If
  2676.        this is so, DDD will continue the  debugged  program  such
  2677.        that you can continue to use your display.
  2678.  
  2679.        The  _U_n_d_o  _B_u_f_f_e_r is the area where DDD stores old program
  2680.        states and commands in order to undo operations.  When you
  2681.        are  displaying  lots of data, the undo buffer can quickly
  2682.        grow.  In `UUnnddoo BBuuffffeerr SSiizzee', you can limit  the  size  of
  2683.        the  undo  buffer.   Setting this limit to 00 disables undo
  2684.        altogether.  A negative value means to place no limit.
  2685.  
  2686.        The `RReesseett' button restores the most recently saved  pref-
  2687.        erences.
  2688.  
  2689.    SSoouurrccee PPrreeffeerreenncceess
  2690.        In  the  source  text,  the current execution position and
  2691.        breakpoints are indicated by symbols  ("glyphs").   As  an
  2692.        alternative,  DDD  can also indicate these positions using
  2693.        text characters.  If you wish to disable glyphs,  set  the
  2694.        `AAss  TTeexxtt  CChhaarraacctteerrss'  option.   This  also makes DDD run
  2695.        slightly faster, especially when scrolling.
  2696.  
  2697.  
  2698.        DDD can locate the tool buttons in the command tool (`CCoomm--
  2699.        mmaanndd  TTooooll')  or  in  a _c_o_m_m_a_n_d _t_o_o_l _b_a_r above the program
  2700.        source (`SSoouurrccee WWiinnddooww').  Pick your choice.
  2701.  
  2702.  
  2703.  
  2704. DDD 3.1.1                   1998-12-06                         41
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710. ddd(1)                                                     ddd(1)
  2711.  
  2712.  
  2713.        Some DBX and XDB variants do not properly handle paths  in
  2714.        source  file  specifications.   If  you  want the inferior
  2715.        debugger to refer to source locations by source base names
  2716.        only,  unset  the  `RReeffeerr  ttoo  ssoouurrcceess  bbyy ffuullll ppaatthh nnaammee'
  2717.        option.
  2718.  
  2719.        By default, DDD finds only complete words.  This is conve-
  2720.        nient for clicking on an identifier in the source text and
  2721.        search for exactly this identifier.  If you want  to  find
  2722.        all  occurrences,  including word parts, unset `FFiinndd wwoorrddss
  2723.        oonnllyy'.
  2724.  
  2725.        By default, DDD find is case-sensitive.   This  is  conve-
  2726.        nient  for  case-sensitive  programming languages.  If you
  2727.        want to find all occurrences, regardless  of  case,  unset
  2728.        `FFiinndd ccaassee sseennssiittiivvee'.
  2729.  
  2730.        By  default,  DDD  caches source files in memory.  This is
  2731.        convenient for remote debugging, since remote file  access
  2732.        may  be  slow.   If you want to reduce memory usage, unset
  2733.        the `CCaacchhee ssoouurrccee ffiilleess' option.
  2734.  
  2735.        By default, DDD caches machine code in  memory.   This  is
  2736.        bad for memory usage, but convenient for speed, since dis-
  2737.        assembling a function each time it  is  reached  may  take
  2738.        time.   If  you  want  to  reduce  memory usage, unset the
  2739.        `CCaacchhee mmaacchhiinnee ccooddee' option.
  2740.  
  2741.        If your source code uses a tab width different from 88 (the
  2742.        default),  you  can  set an alternate width using the `TTaabb
  2743.        wwiiddtthh' slider.
  2744.  
  2745.        You can instruct DDD to indent the  source  code,  leaving
  2746.        more  room  for breakpoints and execution glyphs.  This is
  2747.        done using the `SSoouurrccee iinnddeennttaattiioonn' slider.   The  default
  2748.        value  is  00  for  no  indentation  at all.  If the source
  2749.        indentation is 55 or higher, DDD will also show  line  num-
  2750.        bers.
  2751.  
  2752.        Finally,  you can instruct DDD to indent the machine code,
  2753.        leaving room for breakpoints and execution  glyphs.   This
  2754.        is  done using the `MMaacchhiinnee ccooddee iinnddeennttaattiioonn' slider.  The
  2755.        default value is 44.
  2756.  
  2757.        The `RReesseett' button restores the most recently saved  pref-
  2758.        erences.
  2759.  
  2760.    DDaattaa PPrreeffeerreenncceess
  2761.        You  can  control  whether edge hints and edge annotations
  2762.        are displayed.  Set or unset the  `SShhooww  EEddggee  HHiinnttss'  and
  2763.        `SShhooww EEddggee AAnnnnoottaattiioonnss' option, respectively.
  2764.  
  2765.        By  default, DDD disables the title of a dependent display
  2766.        if the name can be deduced from edge annotations.  If  you
  2767.  
  2768.  
  2769.  
  2770. DDD 3.1.1                   1998-12-06                         42
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776. ddd(1)                                                     ddd(1)
  2777.  
  2778.  
  2779.        want  all  dependent  displays  to have a title, set `SShhooww
  2780.        TTiittlleess ooff DDeeppeennddeenntt DDiissppllaayyss'.
  2781.  
  2782.  
  2783.        To enable a more compact layout, you can set the  `CCoommppaacctt
  2784.        LLaayyoouutt'  option.   This realizes an alternate layout algo-
  2785.        rithm, where successors are placed next to their  parents.
  2786.        This algorithm is suitable for homogeneous data structures
  2787.        only.
  2788.  
  2789.        To enforce layout, you can set the `RRee--llaayyoouutt ggrraapphh  aauuttoo--
  2790.        mmaattiiccaallllyy'  option.   If  automatic layout is enabled, the
  2791.        graph is layouted after each change.
  2792.  
  2793.        If you  want  DDD  to  detect  aliases,  set  the  `DDeetteecctt
  2794.        AAlliiaasseess'  option.  Note that alias detection makes DDD run
  2795.        slower.  See `EExxaammiinniinngg SShhaarreedd  DDaattaa  SSttrruuccttuurreess',  above,
  2796.        for details on alias detection.
  2797.  
  2798.        By default, DDD displays two-dimensional arrays as tables,
  2799.        aligning the array elements in rows and columns.   If  you
  2800.        prefer  viewing  two-dimensional  arrays  as  nested  one-
  2801.        dimensional arrays, you  can  disable  the  `DDiissppllaayy  ttwwoo--
  2802.        ddiimmeennssiioonnaall aarrrraayyss aass ttaabblleess' option.
  2803.  
  2804.        To  facilitate alignment of data displays, you can set the
  2805.        `AAuuttoo--aalliiggnn  ddiissppllaayyss'  option.   If   auto-alignment   is
  2806.        enabled, displays can be moved on grid positions only.
  2807.  
  2808.        By  default,  the  stacked  data  window  is automatically
  2809.        closed when you delete the last  data  display.   You  can
  2810.        keep  the data window open by unsetting `CClloossee ddaattaa wwiinnddooww
  2811.        wwhheenn ddeelleettiinngg llaasstt ddiissppllaayy'.
  2812.  
  2813.        In the `GGrriidd SSiizzee' scale, you can change  the  spacing  of
  2814.        grid  points.   A spacing of 0 disables the grid.  Default
  2815.        is 16.
  2816.  
  2817.        The `RReesseett' button restores the most recently saved  pref-
  2818.        erences.
  2819.  
  2820.    SSttaarrttuupp PPrreeffeerreenncceess
  2821.        If  you  change  one  of  the resources in this panel, the
  2822.        change will not take effect immediately.  Instead, you can
  2823.  
  2824.        +o save  options  (using  `EEddiitt-->>SSaavvee OOppttiioonnss') to make the
  2825.          change effective for future DDD sessions,
  2826.  
  2827.        +o or restart DDD (using `FFiillee-->>RReessttaarrtt DDDDDD')  to  make  it
  2828.          effective for the restarted DDD session.
  2829.  
  2830.        After having made changes in the panel, DDD will automati-
  2831.        cally offer you to restart itself, such that you  can  see
  2832.        the   changes   taking   effect.   Note  that  even  after
  2833.  
  2834.  
  2835.  
  2836. DDD 3.1.1                   1998-12-06                         43
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842. ddd(1)                                                     ddd(1)
  2843.  
  2844.  
  2845.        restarting, you  still  must  save  options  to  make  the
  2846.        changes permanent.
  2847.  
  2848.  
  2849.        By  default,  DDD stacks commands, source, and data in one
  2850.        single top-level window.  To have separate top-level  win-
  2851.        dows for source, data, and debugger console, set the `WWiinn--
  2852.        ddooww LLaayyoouutt' option to `SSeeppaarraattee WWiinnddoowwss'.   See  also  the
  2853.        `----aattttaacchh--wwiinnddoowwss'   and   `----sseeppaarraattee--wwiinnddoowwss'   options,
  2854.        below.
  2855.  
  2856.        The CCttrrll++CC key can be bound to different actions, each  in
  2857.        accordance with a specific style guide.
  2858.  
  2859.        CCooppyy   This setting binds CCttrrll++CC to the Copy operation, as
  2860.               specified by the KDE style guide.  In this setting,
  2861.               use EESSCC to interrupt the debuggee.
  2862.  
  2863.        IInntteerrrruupptt
  2864.               This  (default)  setting binds CCttrrll++CC to the Inter-
  2865.               rupt operation, as used in  several  UNIX  command-
  2866.               line  programs.   In  this setting, use CCttrrll++IInnss to
  2867.               copy text to the clipboard.
  2868.  
  2869.        The CCttrrll++AA key can be bound to different actions, too.
  2870.  
  2871.        SSeelleecctt AAllll
  2872.               This (default) setting binds CCttrrll++AA to  the  Select
  2873.               All operation, as specified by the KDE style guide.
  2874.               In this setting, use HHOOMMEE tp move the cursor to the
  2875.               beginning of a line.
  2876.  
  2877.        BBeeggiinnnniinngg ooff LLiinnee
  2878.               This  setting binds CCttrrll++AA to the Beginning of Line
  2879.               operation, as used  in  several  UNIX  text-editing
  2880.               programs.   In  this  setting,  use CCttrrll++SShhiifftt++AA to
  2881.               select all text.
  2882.  
  2883.        The DDD tool bar  buttons  can  appear  in  a  variety  of
  2884.        styles:
  2885.  
  2886.        IImmaaggeess This lets each tool bar button show an image illus-
  2887.               trating the action.
  2888.  
  2889.        CCaappttiioonnss
  2890.               This shows the action name below the image.
  2891.  
  2892.        The default is to have images as well as captions, but you
  2893.        can choose to have only images (saving space) or only cap-
  2894.        tions.
  2895.  
  2896.  
  2897.        If you choose to have neither images  nor  captions,  tool
  2898.        bar buttons are labeled like other buttons, as in DDD 2.x.
  2899.  
  2900.  
  2901.  
  2902. DDD 3.1.1                   1998-12-06                         44
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908. ddd(1)                                                     ddd(1)
  2909.  
  2910.  
  2911.        Note that this implies that in the stacked window configu-
  2912.        ration,  the  common  tool  bar cannot be displayed; it is
  2913.        replaced by two separate tool bars, as in DDD 2.x.
  2914.  
  2915.        If you enable `FFllaatt' buttons (default), the border of tool
  2916.        bar  buttons will appear only if the mouse pointer is over
  2917.        them.  This latest-and-greatest GUI invention can be  dis-
  2918.        abled, such that the button border is always shown.
  2919.  
  2920.        If  you  enable  `CCoolloorr'  buttons, tool bar images will be
  2921.        colored when entered.  If DDD was built  using  Motif  2.0
  2922.        and later, you can also choose a third setting, where but-
  2923.        tons appear in color all the time.
  2924.  
  2925.        By default, the DDD tool bars are located on  top  of  the
  2926.        window.   If  you prefer the tool bar being located at the
  2927.        bottom, as in DDD 2.x and  earlier,  enable  the  `BBoottttoomm'
  2928.        toggle.  The bottom setting is only supported for separate
  2929.        tool bars--that is, you must either choose  separate  win-
  2930.        dows  or configure the tool bar to have neither images nor
  2931.        captions.
  2932.  
  2933.        By default, DDD directs keyboard input to  the  item  your
  2934.        mouse  pointer  points  at.  If you prefer a click-to-type
  2935.        keyboard focus (that is, click  on  an  item  to  make  it
  2936.        accept keyboard input), set the `KKeeyybbooaarrdd FFooccuuss' option on
  2937.        `CClliicckk ttoo TTyyppee'.
  2938.  
  2939.        By default, DDD uses Motif scroll bars to scroll the  data
  2940.        window.  Many people find this inconvenient, since you can
  2941.        scroll in the horizontal or vertical direction  only.   As
  2942.        an  alternative,  DDD  provides  a  panner (a kind of two-
  2943.        dimensional scroll bar).  This is much  more  comfortable,
  2944.        but  may  be incompatible with your Motif toolkit.  To set
  2945.        up DDD such that it uses panners by default, set the `DDaattaa
  2946.        SSccrroolllliinngg'  option  to  `PPaannnneerr'.  See also the `----ppaannnneedd--
  2947.        ggrraapphh--eeddiittoorr'   and   `----ssccrroolllleedd--ggrraapphh--eeddiittoorr'   options,
  2948.        below.
  2949.  
  2950.        By default, DDD determines the inferior debugger automati-
  2951.        cally.  To change this default, unset `DDeetteerrmmiinnee AAuuttoommaattii--
  2952.        ccaallllyy'  and  set  the `DDeebbuuggggeerr TTyyppee' option to a specific
  2953.        debugger.   See  also  the  `----ggddbb',   `----ddbbxx',   `----xxddbb',
  2954.        `----jjddbb', `----ppyyddbb', and `----ppeerrll' options, below.
  2955.  
  2956.        If  you  want  the  DDD  splash screen shown upon startup,
  2957.        enable `DDDDDD SSppllaasshh SSccrreeeenn'.
  2958.  
  2959.        If you want  the  DDD  tips  of  the  day  displayed  upon
  2960.        startup, enable `TTiipp ooff tthhee DDaayy'.
  2961.  
  2962.        The  `RReesseett' button restores the most recently saved pref-
  2963.        erences.
  2964.  
  2965.  
  2966.  
  2967.  
  2968. DDD 3.1.1                   1998-12-06                         45
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974. ddd(1)                                                     ddd(1)
  2975.  
  2976.  
  2977.    FFoonnttss
  2978.        You can configure the basic DDD fonts at  run-time.   Each
  2979.        font is specified using two members:
  2980.  
  2981.        +o The  _f_o_n_t  _f_a_m_i_l_y is an X font specifications, where the
  2982.          initial specification  after  `_F_a_m_i_l_y'.   Thus,  a  pair
  2983.          `_f_a_m_i_l_y--_w_e_i_g_h_t' usually suffices.
  2984.  
  2985.        +o The  _f_o_n_t _s_i_z_e is given as (resolution-independent) 1/10
  2986.          points.
  2987.  
  2988.        The `BBrroowwssee' button opens a font selection program,  where
  2989.        you can select fonts and attributes interactively.  Click-
  2990.        ing `qquuiitt' or `sseelleecctt' in the  font  selector  causes  all
  2991.        non-default values to be transferred to the DDD font pref-
  2992.        erences panel.
  2993.  
  2994.  
  2995.        The following fonts  can  be  set  using  the  preferences
  2996.        panel:
  2997.  
  2998.        DDeeffaauulltt FFoonntt
  2999.               The  default DDD font to use for labels, menus, and
  3000.               buttons.  Default is `hheellvveettiiccaa--bboolldd'.
  3001.  
  3002.        VVaarriiaabbllee WWiiddtthh
  3003.               The variable width DDD font to use for  help  texts
  3004.               and messages.  Default is `hheellvveettiiccaa--mmeeddiiuumm'.
  3005.  
  3006.        FFiixxeedd WWiiddtthh
  3007.               The  fixed  width  DDD font to use for source code,
  3008.               the debugger console, text fields,  data  displays,
  3009.               and  the execution window.  Default is `lluucciiddaattyyppee--
  3010.               wwrriitteerr--mmeeddiiuumm'.
  3011.  
  3012.        Just like startup preferences, changes in this panel  will
  3013.        not take effect immediately.  Instead, you can
  3014.  
  3015.        +o save  options  (using  `EEddiitt-->>SSaavvee OOppttiioonnss') to make the
  3016.          change effective for future DDD sessions,
  3017.  
  3018.        +o or restart DDD (using `FFiillee-->>RReessttaarrtt DDDDDD')  to  make  it
  3019.          effective for the restarted DDD session.
  3020.  
  3021.        After having made changes in the panel, DDD will automati-
  3022.        cally offer you to restart itself, such that you  can  see
  3023.        the  changes taking effect.  Note that even after restart-
  3024.        ing, you still must save options to make the changes  per-
  3025.        manent.
  3026.  
  3027.        The  `RReesseett' button restores the most recently saved pref-
  3028.        erences.
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034. DDD 3.1.1                   1998-12-06                         46
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040. ddd(1)                                                     ddd(1)
  3041.  
  3042.  
  3043.    HHeellppeerrss
  3044.        DDD relies on some external applications (called  _h_e_l_p_e_r_s)
  3045.        for  specific tasks.  Through the `HHeellppeerrss' panel, you can
  3046.        choose and customize these applications.
  3047.  
  3048.        In `EEddiitt SSoouurrcceess', you  can  select  an  X  editor  to  be
  3049.        invoked  via  the DDD `EEddiitt' button.  `@@FFIILLEE@@' is replaced
  3050.        by the current file name; `@@LLIINNEE@@' is replaced by the cur-
  3051.        rent line.  Typical values include `xxeeddiitt @@FFIILLEE@@' or `ggnnuu--
  3052.        cclliieenntt  ++@@LLIINNEE@@  @@FFIILLEE@@'.   See  also  the   `eeddiittCCoommmmaanndd'
  3053.        resource, below.
  3054.  
  3055.        In  `GGeett CCoorree FFiillee', you can enter a command to get a core
  3056.        file from a running process.  `@@FFIILLEE@@' is replaced by  the
  3057.        name  of  the target core file; `@@PPIIDD@@' is replaced by the
  3058.        process ID.  A typical value is `ggccoorree --oo  @@FFIILLEE@@  @@PPIIDD@@'.
  3059.        If you don't have an appropriate command, leave this value
  3060.        empty: DDD will then kill the debuggee in order to  get  a
  3061.        core file.  See also the `ggeettCCoorreeCCoommmmaanndd' resource, below.
  3062.  
  3063.        `LLiisstt PPrroocceesssseess' is a command to get a list of  processes,
  3064.        like  `ppss'.   The  output  of this command is shown in the
  3065.        `FFiillee-->>AAttttaacchh ttoo PPrroocceessss' dialog.  See  also  the  `ppssCCoomm--
  3066.        mmaanndd' resource, below.
  3067.  
  3068.  
  3069.        In  `EExxeeccuuttiioonn WWiinnddooww', you can enter a command to start a
  3070.        terminal emulator.  To this command,  DDD  appends  Bourne
  3071.        shell commands to be executed within the execution window.
  3072.        A simple value is `xxtteerrmm --ee //bbiinn//sshh  --cc'.   See  also  the
  3073.        `tteerrmmCCoommmmaanndd' resource, below.
  3074.  
  3075.        `UUnnccoommpprreessss'  is  the uncompression command used by DDD to
  3076.        uncompress the DDD license and manual pages.   The  uncom-
  3077.        pression command should be invoked such that it reads from
  3078.        standard input and writes to standard output.   A  typical
  3079.        value  is  `gguunnzziipp  --cc'.  See also the `uunnccoommpprreessssCCoommmmaanndd'
  3080.        resource, below.
  3081.  
  3082.        `WWeebb BBrroowwsseerr' is the command to invoke a WWW  browser  for
  3083.        the  DDD  WWW  page.   `@@UURRLL@@' is replaced by the URL (web
  3084.        page) to be shown.  A simple value  is  `nneettssccaappee  @@UURRLL@@'.
  3085.        See also the `wwwwwwCCoommmmaanndd' resource, below.
  3086.  
  3087.        `PPlloott'  is  the  name of a Gnuplot program to invoke.  DDD
  3088.        can run Gnuplot in two ways:
  3089.  
  3090.        +o DDD can use an EExxtteerrnnaall PPlloott WWiinnddooww, i.e. the plot  win-
  3091.          dow  as supplied by Gnuplot.  DDD "swallows" the Gnuplot
  3092.          output window into its  own  user  interface.   Unfortu-
  3093.          nately,  some window managers, notably MWM, have trouble
  3094.          with swallowing techniques.
  3095.  
  3096.        +o DDD can supply a  BBuuiillttiinn  PPlloott  WWiinnddooww  instead.   This
  3097.  
  3098.  
  3099.  
  3100. DDD 3.1.1                   1998-12-06                         47
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106. ddd(1)                                                     ddd(1)
  3107.  
  3108.  
  3109.          works  with all window managers, but plots are less cus-
  3110.          tomizable (Gnuplot resources are not understood).
  3111.  
  3112.        Pick your choice from the menu.  See  also  the  `pplloottCCoomm--
  3113.        mmaanndd' and `pplloottTTeerrmmTTyyppee' resources, below.
  3114.  
  3115.    SSaavviinngg OOppttiioonnss
  3116.        You  can  save  the  current  option settings by selecting
  3117.        `EEddiitt-->>SSaavvee OOppttiioonnss'.  Options are saved in a  file  named
  3118.        `..dddddd//iinniitt'  in your home directory.  If a session _s_e_s_s_i_o_n
  3119.        is    active,     options     will     be     saved     in
  3120.        `$$HHOOMMEE//..dddddd//sseessssiioonnss//_s_e_s_s_i_o_n//iinniitt' instead.
  3121.  
  3122.    OOtthheerr CCuussttoommiizzaattiioonnss
  3123.        Other  personal  DDD  resources  can  also  be set in your
  3124.        `..dddddd//iinniitt' file.  See the `RREESSOOUURRCCEESS' section, below.
  3125.  
  3126.        The   inferior   debugger   can    be    customized    via
  3127.        `EEddiitt-->>SSeettttiinnggss'.   See  the  `DDEEBBUUGGGGEERR SSEETTTTIINNGGSS' section,
  3128.        below.
  3129.  
  3130. DDEEBBUUGGGGEERR SSEETTTTIINNGGSS
  3131.        For most inferior debuggers, you can change  its  settings
  3132.        using  `EEddiitt-->>SSeettttiinnggss'.   Using  the settings editor, you
  3133.        can determine whether C++ names are to be  demangled,  how
  3134.        many array elements are to print, and so on.
  3135.  
  3136.  
  3137.        The  capabilities  of  the  settings  editor depend on the
  3138.        capabilities of your inferior debugger.  Clicking  on  `??'
  3139.        gives an an explanation on the specific item; the GDB doc-
  3140.        umentation gives more details.
  3141.  
  3142.        Use `EEddiitt-->>UUnnddoo' to undo  changes.   Clicking  on  `RReesseett'
  3143.        restores the most recently saved settings.
  3144.  
  3145.        Some  debugger  settings  are  insensitive  and  cannot be
  3146.        changed, because doing so would  endanger  DDD  operation.
  3147.        See  the `ggddbbIInniittCCoommmmaannddss' and `ddbbxxIInniittCCoommmmaannddss' resources
  3148.        for details.
  3149.  
  3150.        All debugger settings (except source and object paths) are
  3151.        saved with DDD options.
  3152.  
  3153. UUSSEERR--DDEEFFIINNEEDD AACCTTIIOONNSS
  3154.    DDeeffiinniinngg BBuuttttoonnss
  3155.        To facilitate interaction, you can add own command buttons
  3156.        to DDD.  These buttons can be  added  below  the  debugger
  3157.        console  (`CCoonnssoollee  BBuuttttoonnss'),  the source window (`SSoouurrccee
  3158.        BBuuttttoonnss'), or the data window (`DDaattaa BBuuttttoonnss').
  3159.  
  3160.        To define  individual  buttons,  use  the  _B_u_t_t_o_n  _E_d_i_t_o_r,
  3161.        invoked  via  `CCoommmmaannddss-->>EEddiitt BBuuttttoonnss'.  The button editor
  3162.        displays a text, where each line contains the command  for
  3163.  
  3164.  
  3165.  
  3166. DDD 3.1.1                   1998-12-06                         48
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172. ddd(1)                                                     ddd(1)
  3173.  
  3174.  
  3175.        exactly  one  button.  Clicking on `OOKK' creates the appro-
  3176.        priate buttons from the text.  If the text is  empty  (the
  3177.        default), no button is created.
  3178.  
  3179.        As a simple example, assume you want to create a `pprriinntt ii'
  3180.        button.  Invoke `CCoommmmaannddss-->>EEddiitt BBuuttttoonnss' and enter a  line
  3181.        saying  `pprriinntt  ii'  in  the  button editor.  Then click on
  3182.        `OOKK'.  A button named `PPrriinntt ii' will now appear below  the
  3183.        debugger  console--try  it!   To remove the button, reopen
  3184.        the button editor, clear the `pprriinntt ii' line and press `OOKK'
  3185.        again.
  3186.  
  3187.        If  a  button  command contains `(())', the string `(())' will
  3188.        automatically be replaced by the contents of the  argument
  3189.        field.  For instance, a button named `rreettuurrnn (())' will exe-
  3190.        cute the GDB `rreettuurrnn' command with the current content  of
  3191.        the argument field as argument.
  3192.  
  3193.        By  default,  DDD  disables buttons whose commands are not
  3194.        supported by the inferior debugger.  To enable  such  but-
  3195.        tons,  unset the `EEnnaabbllee ssuuppppoorrtteedd bbuuttttoonnss oonnllyy' toggle in
  3196.        the button editor.
  3197.  
  3198.  
  3199.        DDD also allows you to specify control sequences and  spe-
  3200.        cial labels for user-defined buttons.  See the examples in
  3201.        `UUsseerr--ddeeffiinneedd BBuuttttoonnss' in the `RREESSOOUURRCCEESS' section,  below.
  3202.  
  3203.    DDeeffiinniinngg SSiimmppllee CCoommmmaannddss uussiinngg GGDDBB
  3204.        Aside from breakpoint commands (see `BBrreeaakkppooiinntt ccoommmmaannddss',
  3205.        above), DDD also allows you to store sequences of commands
  3206.        as  a user-defined GDB command.  A _u_s_e_r_-_d_e_f_i_n_e_d _c_o_m_m_a_n_d is
  3207.        a sequence of GDB commands to which you assign a new  name
  3208.        as  a  command.   Using  DDD, this is done via the _C_o_m_m_a_n_d
  3209.        _E_d_i_t_o_r, invoked via `CCoommmmaannddss-->>DDeeffiinnee CCoommmmaanndd'.
  3210.  
  3211.        A GDB command is created in five steps:
  3212.  
  3213.        +o Enter the name of the command in  the  `CCoommmmaanndd'  field.
  3214.          Use  the  drop-down  list  on  the  right to select from
  3215.          already defined commands.
  3216.  
  3217.        +o Click on `RReeccoorrdd' to begin the recording of the  command
  3218.          sequence.
  3219.  
  3220.        +o Now  interact  with  DDD.  While recording, DDD does not
  3221.          execute commands, but simply records them to be executed
  3222.          when  the breakpoint is hit.  The recorded debugger com-
  3223.          mands are shown in the debugger console.
  3224.  
  3225.        +o To stop the recording, click on `EEnndd' or enter `eenndd'  at
  3226.          the  GDB  prompt.   To  _c_a_n_c_e_l  the  recording, click on
  3227.          `IInntteerrrruupptt' or press EESSCC.
  3228.  
  3229.  
  3230.  
  3231.  
  3232. DDD 3.1.1                   1998-12-06                         49
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238. ddd(1)                                                     ddd(1)
  3239.  
  3240.  
  3241.        +o Click on `EEddiitt >>>>' to edit the recorded commands.   When
  3242.          done  with editing, click on `EEddiitt <<<<' to close the com-
  3243.          mands editor.
  3244.  
  3245.        After the command is defined, you can enter it at the  GDB
  3246.        prompt.   You may also click on `AAppppllyy' to apply the given
  3247.        user-defined command.
  3248.  
  3249.        For convenience, you can assign a button  to  the  defined
  3250.        command.   Enabling one of the `BBuuttttoonn' locations will add
  3251.        a button with the given command to the specified location.
  3252.        If  you  want  to  edit the button, select `CCoommmmaannddss-->>EEddiitt
  3253.        BBuuttttoonnss'; see also `DDeeffiinniinngg BBuuttttoonnss', above.
  3254.  
  3255.  
  3256.        When user-defined GDB commands are executed, the  commands
  3257.        of  the  definition are not printed.  An error in any com-
  3258.        mand stops execution of the user-defined command.
  3259.  
  3260.        If used interactively, commands that would ask for confir-
  3261.        mation  proceed  without  asking  when used inside a user-
  3262.        defined command.  Many GDB commands  that  normally  print
  3263.        messages to say what they are doing omit the messages when
  3264.        used in a user-defined command.
  3265.  
  3266.        To save all command definitions, use `EEddiitt-->>SSaavvee OOppttiioonnss'.
  3267.  
  3268.    DDeeffiinniinngg AArrgguummeenntt CCoommmmaannddss uussiinngg GGDDBB
  3269.        If  you  want  to pass arguments to user-defined commands,
  3270.        you can enable the `(())' toggle button in the Command  Edi-
  3271.        tor.  Enabling `(())' has two effects:
  3272.  
  3273.        +o While recording commands, all references to the argument
  3274.          field are taken _s_y_m_b_o_l_i_c_a_l_l_y instead of literally.   The
  3275.          argument  field value is frozen to `$$aarrgg00', which is how
  3276.          GDB denotes the  argument  of  a  user-defined  command.
  3277.          When  GDB  executes the command, it will replace `$$aarrgg00'
  3278.          by the current command argument.
  3279.  
  3280.        +o When assigning a button to the command, the command will
  3281.          be  suffixed  by  the  current  contents of the argument
  3282.          field.
  3283.  
  3284.        While defining a command, you can toggle the  `(())'  button
  3285.        as  you  wish  to  switch between using the argument field
  3286.        symbolically and literally.
  3287.  
  3288.        As an example, let us define a  command  `ccoonnttuunnttiill'  that
  3289.        will  set  a breakpoint in the given argument and continue
  3290.        execution.
  3291.  
  3292.        +o Enter `ccoonnttuunnttiill' in the `DDeeffiinniittiioonn' field.
  3293.  
  3294.        +o Enable the `(())' toggle button.
  3295.  
  3296.  
  3297.  
  3298. DDD 3.1.1                   1998-12-06                         50
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304. ddd(1)                                                     ddd(1)
  3305.  
  3306.  
  3307.        +o Now click on `RReeccoorrdd' to start recording.  Note that the
  3308.          contents of the argument field change to `$$aarrgg00'.
  3309.  
  3310.        +o Click  on  `BBrreeaakk  aatt  (())' to create a breakpoint.  Note
  3311.          that the recorded breakpoint command refers to  `$$aarrgg00'.
  3312.  
  3313.        +o Click on `CCoonntt' to continue execution.
  3314.  
  3315.        +o Click on `EEnndd' to end recording.  Note that the argument
  3316.          field is restored to its original value.
  3317.  
  3318.        +o Finally, click on one of the `BBuuttttoonn'  locations.   This
  3319.          creates  a  `CCoonnttuunnttiill  (())'  button  where  `(())' will be
  3320.          replaced by the current contents of the argument field--
  3321.          and thus passed to the `ccoonnttuunnttiill' command.
  3322.  
  3323.        +o You  can  now  either  use  the `CCoonnttuunnttiill (())' button or
  3324.          enter a `ccoonnttuunnttiill' command at the GDB prompt.  (If  you
  3325.          plan  to  use  the  command  frequently, you may wish to
  3326.          define a `ccuu' command,  which  again  calls  `ccoonnttuunnttiill'
  3327.          with its argument.  This is a nice exercise.)
  3328.  
  3329.        There is a little drawback with argument commands: a user-
  3330.        defined command in GDB has no means to access the argument
  3331.        list  as  a  whole; only the first argument (up to whites-
  3332.        pace)  is  processed.   This  may  change  in  future  GDB
  3333.        releases.
  3334.  
  3335.    DDeeffiinniinngg CCoommmmaannddss uussiinngg OOtthheerr DDeebbuuggggeerrss
  3336.        If your inferior debugger allows you to define own command
  3337.        sequences, you can also use  these  user-defined  commands
  3338.        within DDD; just enter them at the debugger prompt.
  3339.  
  3340.        However, you may encounter some problems:
  3341.  
  3342.        +o In contrast to the well-documented commands of the infe-
  3343.          rior debugger, DDD does not  know  what  a  user-defined
  3344.          command  does.  This may lead to inconsistencies between
  3345.          DDD and the inferior debugger.  For  instance,  if  your
  3346.          the user-defined command `bbpp' sets a breakpoint, DDD may
  3347.          not display it immediately, because DDD  does  not  know
  3348.          that `bbpp' changes the breakpoint state.
  3349.  
  3350.        +o You  cannot  use  DDD ggrraapphh commands within user-defined
  3351.          commands.  This is only  natural,  because  user-defined
  3352.          commands are interpreted by the inferior debugger, which
  3353.          does not know about DDD commands.
  3354.  
  3355.        As a solution, DDD provides a simple facility called _a_u_t_o_-
  3356.        _c_o_m_m_a_n_d_s.   If  DDD  receives any output from the inferior
  3357.        debugger in the form `_p_r_e_f_i_x _c_o_m_m_a_n_d', it  will  interpret
  3358.        _c_o_m_m_a_n_d  as if it had been entered at the debugger prompt.
  3359.        _p_r_e_f_i_x is a user-defined string, for example `dddddd::
  3360.  
  3361.  
  3362.  
  3363.  
  3364. DDD 3.1.1                   1998-12-06                         51
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370. ddd(1)                                                     ddd(1)
  3371.  
  3372.  
  3373.        Suppose you want to define a command `ggdd' that  serves  as
  3374.        abbreviation  for `ggrraapphh ddiissppllaayy'.  All the command ggdd has
  3375.        to do is to issue a string
  3376.  
  3377.          dddddd:: ggrraapphh ddiissppllaayy _a_r_g_u_m_e_n_t
  3378.  
  3379.        where _a_r_g_u_m_e_n_t is the argument given to `ggdd'.  Using  GDB,
  3380.        this  can  be  achieved  using  the eecchhoo command.  In your
  3381.        $$HHOOMMEE//..ggddbbiinniitt file, insert the lines
  3382.  
  3383.          ddeeffiinnee ggdd
  3384.            eecchhoo dddddd:: ggrraapphh ddiissppllaayy $$aarrgg00\\nn
  3385.          eenndd
  3386.  
  3387.        To complete the setting, you must also set  the  `aauuttooCCoomm--
  3388.        mmaannddPPrreeffiixx'  resource  to  the  `dddddd:: ' prefix you gave in
  3389.        your command.  In `$$HHOOMMEE//..dddddd//iinniitt', write:
  3390.  
  3391.          DDdddd**aauuttooCCoommmmaannddPPrreeffiixx:: dddddd::\\
  3392.  
  3393.        (Be sure to leave a space after the trailing backslash.)
  3394.  
  3395.        Entering `ggdd ffoooo' will now have the same effect as  enter-
  3396.        ing `ggrraapphh ddiissppllaayy ffoooo' at the debugger prompt.
  3397.  
  3398.        Please  note:  In  your  commands,  you should choose some
  3399.        other prefix than `dddddd:: '.  This is because  auto-commands
  3400.        raise  a security problem, since arbitrary commands can be
  3401.        executed.  Just imagine some malicious program  issuing  a
  3402.        string  like  `_p_r_e_f_i_x  sshheellll  rrmm  --ffrr  $$HHOOMMEE'  when  being
  3403.        debugged!  As a consequence, be sure to  choose  your  own
  3404.        _p_r_e_f_i_x; it must be at least three characters long.
  3405.  
  3406. QQUUIITTTTIINNGG DDDDDD
  3407.        To  exit  DDD, select `FFiillee-->>EExxiitt'.  You may also type the
  3408.        `qquuiitt' command at the debugger  prompt  or  press  CCttrrll++QQ.
  3409.        GDB  and XDB also accept the `qq' command or an end-of-file
  3410.        character (usually CCttrrll++DD).  Closing the last  DDD  window
  3411.        will also exit DDD.
  3412.  
  3413.        An  interrupt  (EESSCC  or IInntteerrrruupptt) does not exit from DDD,
  3414.        but rather terminates the action of any  debugger  command
  3415.        that  is  in  progress and returns to the debugger command
  3416.        level.  It is safe to type the interrupt character at  any
  3417.        time because the debugger does not allow it to take effect
  3418.        until a time when it is safe.
  3419.  
  3420.        In case an ordinary interrupt does not  succeed,  you  can
  3421.        also  use  an  abort (CCttrrll++\\ or AAbboorrtt), which sends a QUIT
  3422.        signal to the inferior debugger.  Use this in  emergencies
  3423.        only;  the  inferior  debugger may be left inconsistent or
  3424.        even exit after a QUIT signal.
  3425.  
  3426.        As a last resort--if DDD hangs,  for  example--,  you  may
  3427.  
  3428.  
  3429.  
  3430. DDD 3.1.1                   1998-12-06                         52
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436. ddd(1)                                                     ddd(1)
  3437.  
  3438.  
  3439.        also  interrupt DDD itself using an interrupt signal (SIG-
  3440.        INT).  This can be done by typing the interrupt  character
  3441.        (usually  CCttrrll++CC) in the shell DDD was started from, or by
  3442.        using the UNIX `kkiillll' command.  An interrupt signal inter-
  3443.        rupts any DDD action; the inferior debugger is interrupted
  3444.        as well.  Since this interrupt signal can result in inter-
  3445.        nal inconsistencies, use this as a last resort in emergen-
  3446.        cies only; save your work as soon as possible and  restart
  3447.        DDD.
  3448.  
  3449. PPEERRSSIISSTTEENNTT SSEESSSSIIOONNSS
  3450.        Note:  Persistent  sessions are supported with GDB running
  3451.        on the local machine only.  Support for  other  DBX,  XDB,
  3452.        and JDB is partially implemented; your mileage may vary.
  3453.  
  3454.        If you want to interrupt your current DDD session, you can
  3455.        save its entire DDD state in a file and restore it  later.
  3456.  
  3457.    SSaavviinngg SSeessssiioonnss
  3458.        To  save  a  session, select `FFiillee-->>SSaavvee SSeessssiioonn AAss'.  You
  3459.        will be asked for
  3460.  
  3461.        +o a symbolic session name _s_e_s_s_i_o_n and
  3462.  
  3463.        +o whether to include a core dump of the debugged  program.
  3464.          Including  a core dump is necessary for restoring memory
  3465.          contents and the current execution position.
  3466.  
  3467.        After  clicking  on  `SSaavvee',  the  session  is  saved   in
  3468.        `$$HHOOMMEE//..dddddd//sseessssiioonnss//_s_e_s_s_i_o_n'.
  3469.  
  3470.        After  saving  the current state as a session, the session
  3471.        becomes _a_c_t_i_v_e.  This means that DDD state will  be  saved
  3472.        as session defaults:
  3473.  
  3474.        +o User       options       will      be      saved      in
  3475.          `$$HHOOMMEE//..dddddd//sseessssiioonnss//_s_e_s_s_i_o_n//iinniitt'      instead       of
  3476.          `$$HHOOMMEE//..dddddd//iinniitt';  see  `SSaavviinngg  OOppttiioonnss',  below,  for
  3477.          details.
  3478.  
  3479.        +o The   DDD   command   history   will   be    saved    in
  3480.          `$$HHOOMMEE//..dddddd//sseessssiioonnss//_s_e_s_s_i_o_n//hhiissttoorryy'     instead     of
  3481.          `$$HHOOMMEE//..dddddd//hhiissttoorryy'; see  `EEnntteerriinngg  CCoommmmaannddss',  above,
  3482.          for details.
  3483.  
  3484.        To  make  the  current  session inactive, open the _d_e_f_a_u_l_t
  3485.        _s_e_s_s_i_o_n named `[[NNoonnee]]'; see below for details  on  opening
  3486.        sessions.
  3487.  
  3488.        If  your  program is running, or if you have opened a core
  3489.        file, DDD can include a core file in the session such that
  3490.        the debuggee data will be restored when re-opening it.  To
  3491.        get a core file, DDD typically  must  kill  the  debuggee.
  3492.        This  means that you cannot resume program execution after
  3493.  
  3494.  
  3495.  
  3496. DDD 3.1.1                   1998-12-06                         53
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502. ddd(1)                                                     ddd(1)
  3503.  
  3504.  
  3505.        saving a session.  Depending on your  architecture,  other
  3506.        options for getting a core file may also be available.
  3507.  
  3508.  
  3509.        If  a  core file is _n_o_t to be included in the session, DDD
  3510.        data displays are saved as _d_e_f_e_r_r_e_d; that is, they will be
  3511.        restored as soon as program execution reaches the scope in
  3512.        which they were created.
  3513.  
  3514.    OOppeenniinngg SSeessssiioonnss
  3515.        To resume a previously saved session,  select  `FFiillee-->>OOppeenn
  3516.        SSeessssiioonn'  and  choose a session name from the list.  After
  3517.        clicking on `OOppeenn', the entire DDD state will be  restored
  3518.        from the given session.
  3519.  
  3520.        The session named `[[NNoonnee]]' is the _d_e_f_a_u_l_t _s_e_s_s_i_o_n which is
  3521.        active when starting DDD.  To  save  options  for  default
  3522.        sessions,  open  the default session and save options; see
  3523.        `SSaavviinngg OOppttiioonnss' below for details.
  3524.  
  3525.  
  3526.        If a the restored session includes a core dump,  the  pro-
  3527.        gram  being debugged will be in the same state at the time
  3528.        the session was saved; in particular, you can examine  the
  3529.        program  data.   However,  you  will not be able to resume
  3530.        program  execution  since  the  environment  (open  files,
  3531.        resources,  etc.)  will be lost.  However, you can restart
  3532.        the program, re-using the restored  breakpoints  and  data
  3533.        displays.
  3534.  
  3535.        Opening  sessions  also restores command definitions, but-
  3536.        tons, display shortcuts and the source  tab  width.   This
  3537.        way,  you  can maintain a different set of definitions for
  3538.        each session.
  3539.  
  3540.    DDeelleettiinngg SSeessssiioonnss
  3541.        To delete sessions  that  are  no  longer  needed,  select
  3542.        `FFiillee-->>OOppeenn  SSeessssiioonn' or `FFiillee-->>SSaavvee SSeessssiioonn'.  Select the
  3543.        sessions you want to delete and click on `DDeelleettee'.
  3544.  
  3545.        The default session cannot be deleted.
  3546.  
  3547.    SSttaarrttiinngg DDDDDD wwiitthh aa SSeessssiioonn
  3548.        To start-up DDD with a given session named _s_e_s_s_i_o_n instead
  3549.        of the default session, use
  3550.  
  3551.          dddddd ----sseessssiioonn _s_e_s_s_i_o_n
  3552.  
  3553.        There  is  also  a shortcut that opens the session _s_e_s_s_i_o_n
  3554.        and also invokes the inferior debugger  on  an  executable
  3555.        named _s_e_s_s_i_o_n (in case _s_e_s_s_i_o_n cannot be opened):
  3556.  
  3557.          dddddd ==_s_e_s_s_i_o_n
  3558.  
  3559.  
  3560.  
  3561.  
  3562. DDD 3.1.1                   1998-12-06                         54
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568. ddd(1)                                                     ddd(1)
  3569.  
  3570.  
  3571.        There is no need to give further command-line options when
  3572.        restarting a session, as they will be  overridden  by  the
  3573.        options saved in the session.
  3574.  
  3575. IINNTTEEGGRRAATTIINNGG DDDDDD
  3576.        You  can run DDD as an inferior debugger in other debugger
  3577.        front-ends, combining their special abilities  with  those
  3578.        of DDD.
  3579.  
  3580.    GGeenneerraall IInnffoorrmmaattiioonn
  3581.        To  have  DDD  run as an inferior debugger in other front-
  3582.        ends, set up your debugger front-end such that `dddddd ----ttttyy'
  3583.        is  invoked instead of the inferior debugger.  When DDD is
  3584.        invoked using the  `----ttttyy'  option,  it  enables  its  _T_T_Y
  3585.        _i_n_t_e_r_f_a_c_e,  taking additional debugger commands from stan-
  3586.        dard input and forwarding debugger output to standard out-
  3587.        put,  just  as  if  the inferior debugger had been invoked
  3588.        directly.    All   remaining   DDD   functionality   stays
  3589.        unchanged.
  3590.  
  3591.        In  case  your debugger front-end uses the GDB `--ffuullllnnaammee'
  3592.        option to have  GDB  report  source  code  positions,  the
  3593.        `----ttttyy'  option  is  not  required.   DDD  recognizes  the
  3594.        `--ffuullllnnaammee' option, finds that it has been invoked from  a
  3595.        debugger  front-end  and  automatically  enables  the  TTY
  3596.        interface.
  3597.  
  3598.        You may also invoke `dddddd  ----ttttyy'  directly,  entering  DDD
  3599.        commands  from  your TTY, or use DDD as the end of a pipe,
  3600.        controlled by a remote program.  Be aware,  however,  that
  3601.        the  TTY  interface does not support line editing and com-
  3602.        mand completion and that DDD exits as soon as  it  detects
  3603.        an  EOF condition on its standard input.  Also, do not try
  3604.        to run DDD with DDD as inferior debugger.
  3605.  
  3606.        Using DDD in TTY mode automatically disables some DDD win-
  3607.        dows, because it is assumed that their facilities are pro-
  3608.        vided by the remote program:
  3609.  
  3610.        +o If DDD is invoked with the `----ttttyy' option, the  debugger
  3611.          console  is  initially  disabled,  as its facilities are
  3612.          supposed to be provided by the integrating front-end.
  3613.  
  3614.        +o If DDD is  invoked  with  the  `--ffuullllnnaammee'  option,  the
  3615.          debugger  console  and  the  source window are initially
  3616.          disabled, as their facilities are supposed  to  be  pro-
  3617.          vided by the integrating front-end.
  3618.  
  3619.        In  case of need, you can use the `VViieeww' menu to re-enable
  3620.        these windows.
  3621.  
  3622.    UUssiinngg DDDDDD wwiitthh GGNNUU EEmmaaccss
  3623.        Use `MM--xx ggddbb' or `MM--xx ddbbxx' to start a  debugging  session.
  3624.        At  the  prompt, enter `dddddd ----ttttyy', followed by `----ddbbxx' or
  3625.  
  3626.  
  3627.  
  3628. DDD 3.1.1                   1998-12-06                         55
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634. ddd(1)                                                     ddd(1)
  3635.  
  3636.  
  3637.        `----ggddbb', if required, and the name of the  program  to  be
  3638.        debugged.  Proceed as usual.
  3639.  
  3640.    UUssiinngg DDDDDD wwiitthh XXEEmmaaccss
  3641.        Set  the  variable ggddbb--ccoommmmaanndd--nnaammee to ""dddddd"", by inserting
  3642.        the following line in your $$HHOOMMEE//..eemmaaccss file or evaluating
  3643.        it  by  pressing  EESSCC :: (EESSCC EESSCC for XEmacs 19.13 and ear-
  3644.        lier):
  3645.  
  3646.          ((sseettqq ggddbb--ccoommmmaanndd--nnaammee ""dddddd""))
  3647.  
  3648.        Use `MM--xx ggddbb' or `MM--xx ggddbbssrrcc' to start  a  debugging  ses-
  3649.        sion.  Proceed as usual.
  3650.  
  3651.    UUssiinngg DDDDDD wwiitthh XXXXGGDDBB
  3652.        Invoke xxxxggddbb as
  3653.  
  3654.          xxxxggddbb --ddbb__nnaammee dddddd --ddbb__pprroommpptt ''((ggddbb)) ''
  3655.  
  3656.  
  3657. UUSSIINNGG DDDDDD WWIITTHH LLEESSSSTTIIFF
  3658.        DDD  2.1.1  and  later include a number of hacks that make
  3659.        DDD run with _L_e_s_s_T_i_f_, a free Motif clone, without loss  of
  3660.        functionality.   Since  a  DDD  binary  may be dynamically
  3661.        bound  and  used  with  either  an  OSF/Motif  or  LessTif
  3662.        library,  these  _l_e_s_s_t_i_f _h_a_c_k_s can be enabled and disabled
  3663.        at run time.
  3664.  
  3665.        Whether the _l_e_s_s_t_i_f _h_a_c_k_s are included at run-time depends
  3666.        on  the  setting of the `lleessssTTiiffVVeerrssiioonn' resource.  `lleessss--
  3667.        TTiiffVVeerrssiioonn' indicates the LessTif  version  against  which
  3668.        DDD  is  linked.   For LessTif version _x_._y, its value is _x
  3669.        multiplied by 1000 plus  _y--for  instance,  the  value  9955
  3670.        stands  for  LessTif  0.95  and  the value 11000000 stands for
  3671.        LessTif 1.0.  To specify the version number of the LessTif
  3672.        library  at  DDD  invocation,  you can also use the option
  3673.        `----lleessssttiiff--vveerrssiioonn _v_e_r_s_i_o_n'.
  3674.  
  3675.        The default value  of  the  `lleessssTTiiffVVeerrssiioonn'  resource  is
  3676.        derived  from the LessTif library DDD was compiled against
  3677.        (or 11000000 when compiled  against  OSF/Motif).   Hence,  you
  3678.        normally  don't  need  to  worry  about  the value of this
  3679.        resource.  However, if you use a  dynamically  linked  DDD
  3680.        binary  with a library other than the one DDD was compiled
  3681.        against, you  must  specify  the  version  number  of  the
  3682.        library  using  this resource.  (Unfortunately, DDD cannot
  3683.        detect this at run-time.)
  3684.  
  3685.        Here are a few scenarios to illustrate this scheme:
  3686.  
  3687.        +o Your DDD binary was compiled against OSF/Motif, but  you
  3688.          use  a LessTif 0.85 dynamic library instead.  Invoke DDD
  3689.          with `----lleessssttiiff--vveerrssiioonn 8855'.
  3690.  
  3691.  
  3692.  
  3693.  
  3694. DDD 3.1.1                   1998-12-06                         56
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700. ddd(1)                                                     ddd(1)
  3701.  
  3702.  
  3703.        +o Your DDD binary was compiled against  LessTif,  but  you
  3704.          use  a  OSF/Motif dynamic library instead.    Invoke DDD
  3705.          with `----lleessssttiiff--vveerrssiioonn 11000000'.
  3706.  
  3707.        +o Your DDD binary was compiled against LessTif  0.85,  and
  3708.          you  have  upgraded  to  LessTif  0.90.  Invoke DDD with
  3709.          `----lleessssttiiff--vveerrssiioonn 9900'.
  3710.  
  3711.        To find out the LessTif or OSF/Motif version DDD was  com-
  3712.        piled  against,  invoke  DDD  with  the  `----ccoonnffiigguurraattiioonn'
  3713.        option.
  3714.  
  3715.        In the DDD source, LessTif-specific hacks  are  controlled
  3716.        by the string `lleessssttiiff__vveerrssiioonn'.
  3717.  
  3718. RREEMMOOTTEE DDEEBBUUGGGGIINNGG
  3719.        It  is  possible  to  have  the inferior debugger run on a
  3720.        remote UNIX host.  This is useful when the remote host has
  3721.        a  slow network connection or when DDD is available on the
  3722.        local host only.
  3723.  
  3724.        Furthermore, the inferior debugger may support debugging a
  3725.        program  on  a remote host.  This is useful when the infe-
  3726.        rior debugger is not available  on  the  remote  host--for
  3727.        instance,  because  the remote system does not have a gen-
  3728.        eral purpose operating system powerful  enough  to  run  a
  3729.        full-featured debugger.
  3730.  
  3731.    UUssiinngg DDDDDD wwiitthh aa RReemmoottee DDeebbuuggggeerr
  3732.        In  order  to  run the inferior debugger on a remote host,
  3733.        you need `rreemmsshh' (called `rrsshh' on BSD systems)  access  on
  3734.        the remote host.
  3735.  
  3736.        To  run the debugger on a remote host _h_o_s_t_n_a_m_e, invoke DDD
  3737.        as
  3738.  
  3739.          dddddd ----hhoosstt _h_o_s_t_n_a_m_e _r_e_m_o_t_e_-_p_r_o_g_r_a_m
  3740.  
  3741.        If your remote  _u_s_e_r_n_a_m_e differs from the local  username,
  3742.        use
  3743.  
  3744.          dddddd ----hhoosstt _h_o_s_t_n_a_m_e ----llooggiinn _u_s_e_r_n_a_m_e _r_e_m_o_t_e_-_p_r_o_g_r_a_m
  3745.  
  3746.        or
  3747.  
  3748.          dddddd ----hhoosstt _u_s_e_r_n_a_m_e@@_h_o_s_t_n_a_m_e _r_e_m_o_t_e_-_p_r_o_g_r_a_m
  3749.  
  3750.        instead.
  3751.  
  3752.        There are a few _c_a_v_e_a_t_s in remote mode:
  3753.  
  3754.        +o The  remote  debugger  is  started  in  your remote home
  3755.          directory.  Hence, you must  specify  an  absolute  path
  3756.          name for _r_e_m_o_t_e_-_p_r_o_g_r_a_m (or a path name relative to your
  3757.  
  3758.  
  3759.  
  3760. DDD 3.1.1                   1998-12-06                         57
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766. ddd(1)                                                     ddd(1)
  3767.  
  3768.  
  3769.          remote home directory).  Same  applies  to  remote  core
  3770.          files.   Also,  be  sure  to specify a remote process id
  3771.          when debugging a running program.
  3772.  
  3773.        +o The remote debugger is started non-interactively.   Some
  3774.          DBX versions have trouble with this.  If you don't get a
  3775.          prompt from  the  remote  debugger,  use  the  `----rrhhoosstt'
  3776.          option instead of `----hhoosstt'.  This will invoke the remote
  3777.          debugger via an interactive shell on  the  remote  host,
  3778.          which may lead to better results.
  3779.          Note: using `----rrhhoosstt', DDD invokes the inferior debugger
  3780.          as soon as a shell prompt appears.  The first output  on
  3781.          the  remote  host ending in a space character or `>>' and
  3782.          not followed by a newline  is  assumed  to  be  a  shell
  3783.          prompt.   If  necessary, adjust your shell prompt on the
  3784.          remote host.
  3785.  
  3786.        +o To run the remote program, DDD invokes an `xxtteerrmm' termi-
  3787.          nal  emulator  on  the  remote host, giving your current
  3788.          `DDIISSPPLLAAYY'  environment  variable  as  address.   If  the
  3789.          remote  host  cannot  invoke  `xxtteerrmm',  or does not have
  3790.          access to your X display, start DDD with the `----nnoo--eexxeecc--
  3791.          wwiinnddooww'  option.   The program input/output will then go
  3792.          through the DDD debugger console.
  3793.  
  3794.        +o In remote mode, all sources are loaded from  the  remote
  3795.          host;  file  dialogs  scan remote directories.  This may
  3796.          result in somewhat slower operation than normal.
  3797.  
  3798.        +o To help you find problems due to remote  execution,  run
  3799.          DDD  with  the  `----ttrraaccee' option.  This prints the shell
  3800.          commands issued by DDD on standard error.
  3801.  
  3802.        +o See also the `rrsshhCCoommmmaanndd' resource, below.
  3803.  
  3804.    UUssiinngg DDDDDD wwiitthh aa RReemmoottee PPrrooggrraamm
  3805.        The GDB debugger allows you to run the _d_e_b_u_g_g_e_d _p_r_o_g_r_a_m on
  3806.        a remote machine (called _r_e_m_o_t_e _t_a_r_g_e_t), while GDB runs on
  3807.        the local machine.
  3808.  
  3809.        The section `RReemmoottee ddeebbuuggggiinngg' in  the  GDB  documentation
  3810.        contains  all the details.  Basically, the following steps
  3811.        are required:
  3812.  
  3813.        +o Transfer the executable to the remote target.
  3814.  
  3815.        +o Start `ggddbbsseerrvveerr' on the remote target.
  3816.  
  3817.        +o Start DDD using GDB on the local machine, and  load  the
  3818.          same executable using the 'ffiillee' command.
  3819.  
  3820.        +o Attach  to  the  remote  `ggddbbsseerrvveerr'  using  the 'ttaarrggeett
  3821.          rreemmoottee' command.
  3822.  
  3823.  
  3824.  
  3825.  
  3826. DDD 3.1.1                   1998-12-06                         58
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832. ddd(1)                                                     ddd(1)
  3833.  
  3834.  
  3835.        The local `..ggddbbiinniitt' file is useful for setting up  direc-
  3836.        tory search paths, etc.
  3837.  
  3838.        Of  course,  you  can also combine DDD remote mode and GDB
  3839.        remote mode, running DDD, GDB, and  the  debugged  program
  3840.        each on a different machine.
  3841.  
  3842. RROOOOTT DDEEBBUUGGGGIINNGG
  3843.        Sometimes,  you  may  require  to debug programs with root
  3844.        privileges, but without actually logging in as root.  This
  3845.        is  usually  done  by installing the debugger _s_e_t_u_i_d _r_o_o_t,
  3846.        that is, having the debugger  run  with  root  privileges.
  3847.        For  security  reasons, you cannot install DDD as a setuid
  3848.        program;  DDD  invokes  shell  commands  and  even   shell
  3849.        scripts,  such  that  all  known  problems of setuid shell
  3850.        scripts apply.  Instead, you should invoke DDD such that a
  3851.        _s_e_t_u_i_d copy of the inferior debugger is used.
  3852.  
  3853.        Here  is  an  example.   Have  a  _s_e_t_u_i_d  _r_o_o_t copy of GDB
  3854.        installed as `rroooottggddbb'.  Then invoke
  3855.  
  3856.          dddddd ----ddeebbuuggggeerr rroooottggddbb
  3857.  
  3858.        to debug programs with root privileges.
  3859.  
  3860.        Since a program like `rroooottggddbb' grants root  privileges  to
  3861.        any invoking user, you should give it very limited access.
  3862.  
  3863. RREESSOOUURRCCEESS
  3864.        DDD understands all of the core X Toolkit  resource  names
  3865.        and classes.  The following resources are specific to DDD.
  3866.  
  3867.    SSeettttiinngg DDDDDD FFoonnttss
  3868.        DDD uses the following resources to set up its fonts:
  3869.  
  3870.        ddeeffaauullttFFoonntt ((class Font)
  3871.               The default DDD font to use for labels, menus, but-
  3872.               tons,  etc.   The  font  is  specified as an X font
  3873.               spec, where the initial specification  after  `_F_a_m_-
  3874.               _i_l_y'.  Default value is `hheellvveettiiccaa--bboolldd'.
  3875.  
  3876.               To  set  the  default  DDD  font to, say, hheellvveettiiccaa
  3877.               mmeeddiiuumm, insert a line
  3878.  
  3879.                 DDdddd**ddeeffaauullttFFoonntt:: hheellvveettiiccaa--mmeeddiiuumm
  3880.  
  3881.               in your `$$HHOOMMEE//..dddddd//iinniitt' file.
  3882.  
  3883.        ddeeffaauullttFFoonnttSSiizzee  ((class FontSize)
  3884.               The size of the default DDD font, in  1/10  points.
  3885.               This resource overrides any font size specification
  3886.               in the `ddeeffaauullttFFoonntt'  resource  (see  above).   The
  3887.               default value is 112200 for a 12.0 point font.
  3888.  
  3889.  
  3890.  
  3891.  
  3892. DDD 3.1.1                   1998-12-06                         59
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898. ddd(1)                                                     ddd(1)
  3899.  
  3900.  
  3901.        vvaarriiaabblleeWWiiddtthhFFoonntt ((class Font)
  3902.               The  variable  width DDD font to use for help texts
  3903.               and messages.  The font is specified as an  X  font
  3904.               spec,  where  the initial specification after `_F_a_m_-
  3905.               _i_l_y'.  Defaults to `hheellvveettiiccaa--mmeeddiiuumm--rr'.
  3906.  
  3907.               To set the variable width DDD font family to,  say,
  3908.               ttiimmeess, insert a line
  3909.  
  3910.                 DDdddd**ffiixxeeddWWiiddtthhFFoonntt:: ttiimmeess--mmeeddiiuumm
  3911.  
  3912.               in your `$$HHOOMMEE//..dddddd//iinniitt' file.
  3913.  
  3914.        vvaarriiaabblleeWWiiddtthhFFoonnttSSiizzee  ((class FontSize)
  3915.               The  size  of  the variable width DDD font, in 1/10
  3916.               points.  This  resource  overrides  any  font  size
  3917.               specification  in  the `vvaarriiaabblleeWWiiddtthhFFoonntt' resource
  3918.               (see above).  The default value is 112200 for  a  12.0
  3919.               point font.
  3920.  
  3921.        ffiixxeeddWWiiddtthhFFoonntt ((class Font)
  3922.               The  fixed  width  DDD font to use for source code,
  3923.               the debugger console, text fields,  data  displays,
  3924.               and the execution window.  The font is specified as
  3925.               an X font spec,  where  the  initial  specification
  3926.               after  `_F_a_m_i_l_y'.   Defaults  to  `lluucciiddaattyyppeewwrriitteerr--
  3927.               mmeeddiiuumm'.
  3928.  
  3929.               To set the fixed width DDD  font  family  to,  say,
  3930.               ccoouurriieerr, insert a line
  3931.  
  3932.                 DDdddd**ffiixxeeddWWiiddtthhFFoonntt:: ccoouurriieerr--mmeeddiiuumm
  3933.  
  3934.               in your `$$HHOOMMEE//..dddddd//iinniitt' file.
  3935.  
  3936.        ffiixxeeddWWiiddtthhFFoonnttSSiizzee  ((class FontSize)
  3937.               The  size  of  the  fixed  width  DDD font, in 1/10
  3938.               points.  This  resource  overrides  any  font  size
  3939.               specification in the `ffiixxeeddWWiiddtthhFFoonntt' resource (see
  3940.               above).  The default value is 112200 for a 12.0  point
  3941.               font.
  3942.  
  3943.        As  all  font  size  resources have the same class (and by
  3944.        default the same value), you can easily change the default
  3945.        DDD font size to, say, 9.0 points by inserting a line
  3946.  
  3947.          DDdddd**FFoonnttSSiizzee:: 9900
  3948.  
  3949.        in your `$$HHOOMMEE//..dddddd//iinniitt' file.
  3950.  
  3951.        To  find  out  your  favorite  font  size, try `----ffoonnttssiizzee
  3952.        _S_I_Z_E'.  This also sets all font sizes to _S_I_Z_E.
  3953.  
  3954.        If you want to set the fonts of specific  items,  see  the
  3955.  
  3956.  
  3957.  
  3958. DDD 3.1.1                   1998-12-06                         60
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964. ddd(1)                                                     ddd(1)
  3965.  
  3966.  
  3967.        `DDdddd' application defaults file for instructions.
  3968.  
  3969.    SSeettttiinngg DDDDDD CCoolloorrss
  3970.        These are the most important color resources used in DDD:
  3971.  
  3972.        DDdddd**ffoorreeggrroouunndd::               bbllaacckk
  3973.  
  3974.        DDdddd**bbaacckkggrroouunndd::               ggrreeyy
  3975.  
  3976.        DDdddd**XXmmTTeexxtt..bbaacckkggrroouunndd::        ggrreeyy9966
  3977.  
  3978.        DDdddd**XXmmTTeexxttFFiieelldd..bbaacckkggrroouunndd::   ggrreeyy9966
  3979.  
  3980.        DDdddd**GGrraapphhEEddiitt..bbaacckkggrroouunndd::     ggrreeyy9966
  3981.  
  3982.        DDdddd**XXmmLLiisstt..bbaacckkggrroouunndd::        ggrreeyy9966
  3983.  
  3984.        DDdddd**ggrraapphh__eeddiitt..nnooddeeCCoolloorr::     bbllaacckk
  3985.  
  3986.        DDdddd**ggrraapphh__eeddiitt..eeddggeeCCoolloorr::     bblluuee44
  3987.  
  3988.        DDdddd**ggrraapphh__eeddiitt..sseelleeccttCCoolloorr::   bbllaacckk
  3989.  
  3990.        DDdddd**ggrraapphh__eeddiitt..ggrriiddCCoolloorr::     bbllaacckk
  3991.  
  3992.        DDdddd**ggrraapphh__eeddiitt..ffrraammeeCCoolloorr::    ggrreeyy5500
  3993.  
  3994.        DDdddd**ggrraapphh__eeddiitt..oouuttlliinneeCCoolloorr::  ggrreeyy5500
  3995.  
  3996.        You  can copy and modify the appropriate resources to your
  3997.        `$$HHOOMMEE//..dddddd//iinniitt' file.  For colors within the  data  dis-
  3998.        play,   things  are  slightly  more  complicated--see  the
  3999.        `vvssllDDeeffss' resource, below.
  4000.  
  4001.    GGeenneerraall PPrreeffeerreenncceess
  4002.        The following resources determine DDD general behavior.
  4003.  
  4004.        bbuuttttoonnTTiippss ((class TTiippss))
  4005.               Whether button tips are enabled (`oonn', default)  or
  4006.               not  (`ooffff').  Button tips are helpful for novices,
  4007.               but may be distracting for experienced users.
  4008.  
  4009.        bbuuttttoonnDDooccss ((class DDooccss))
  4010.               Whether the display of button hints in  the  status
  4011.               line is enabled (`oonn', default) or not (`ooffff').
  4012.  
  4013.        cchheecckkGGrraabbss ((class CChheecckkGGrraabbss))
  4014.               When  debugging  a  modal  X  application,  DDD may
  4015.               interrupt it while it has grabbed the pointer, mak-
  4016.               ing  further  interaction  impossible.   If this is
  4017.               `oonn' (default), DDD will check after each  interac-
  4018.               tion  whether  the  pointer is grabbed.  If this is
  4019.               so, DDD will automatically  continue  execution  of
  4020.               debugged program.
  4021.  
  4022.  
  4023.  
  4024. DDD 3.1.1                   1998-12-06                         61
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030. ddd(1)                                                     ddd(1)
  4031.  
  4032.  
  4033.        cchheecckkGGrraabbDDeellaayy ((class CChheecckkGGrraabbDDeellaayy))
  4034.               The  time  to wait (in ms) after a debugger command
  4035.               before checking for a grabbed pointer.  If DDD sees
  4036.               some  pointer  event within this delay, the pointer
  4037.               cannot be grabbed  and  an  explicit  check  for  a
  4038.               grabbed  pointer  is unnecessary.  Default is 55000000,
  4039.               or 5 seconds.
  4040.  
  4041.        cchheecckkOOppttiioonnss ((class CChheecckkOOppttiioonnss))
  4042.               Every _N seconds, where  _N  is  the  value  of  this
  4043.               resource,  DDD  checks whether the options file has
  4044.               changed.  Default is 3300, which means that every  30
  4045.               seconds,  DDD checks for the options file.  Setting
  4046.               this resource to 00 disables  checking  for  changed
  4047.               option files.
  4048.  
  4049.        ccuuttCCooppyyPPaasstteeBBiinnddiinnggss ((class BBiinnddiinnggSSttyyllee))
  4050.               Controls  the key bindings for cut, copy, and paste
  4051.               operations.
  4052.  
  4053.               +o If this is `MMoottiiff' (default),  Cut/Copy/Paste  is
  4054.                 on SShhiifftt++DDeell/CCttrrll++IInnss/SShhiifftt++IInnss.  This is confor-
  4055.                 mant to the Motif style guide.
  4056.  
  4057.               +o If  this   is   `KKDDEE',   Cut/Copy/Paste   is   on
  4058.                 CCttrrll++XX/CCttrrll++CC/CCttrrll++VV.   This is conformant to the
  4059.                 KDE style  guide.   Note  that  this  means  that
  4060.                 CCttrrll++CC no longer interrupts the debuggee; use EESSCC
  4061.                 instead.
  4062.  
  4063.        ffiilltteerrFFiilleess ((class FFiilltteerrFFiilleess))
  4064.               If this is `oonn' (default), DDD filters  files  when
  4065.               opening  execution  files,  core  dumps,  or source
  4066.               files, such that the selection shows only  suitable
  4067.               files.   This  requires  that  DDD opens each file,
  4068.               which may take time.  If this is `ooffff', DDD  always
  4069.               presents all available files.
  4070.  
  4071.        gglloobbaallTTaabbCCoommpplleettiioonn ((class GGlloobbaallTTaabbCCoommpplleettiioonn))
  4072.               If  this  is  `oonn' (default), the TTAABB key completes
  4073.               arguments in all windows.  If this  is  `ooffff',  the
  4074.               TTAABB key completes arguments in the debugger console
  4075.               only.
  4076.  
  4077.        ggrraabbAAccttiioonn ((class ggrraabbAAccttiioonn))
  4078.               The action to take after having detected a  grabbed
  4079.               mouse pointer.  This is a list of newline-separated
  4080.               commands.  Default is `ccoonntt', meaning  to  continue
  4081.               the   debuggee.   Other  possible  choices  include
  4082.               `kkiillll' (killing the debuggee)  or  `qquuiitt'  (exiting
  4083.               DDD).
  4084.  
  4085.        ggrraabbAAccttiioonnDDeellaayy ((class ggrraabbAAccttiioonnDDeellaayy))
  4086.               The  time  to  wait (in ms) before taking an action
  4087.  
  4088.  
  4089.  
  4090. DDD 3.1.1                   1998-12-06                         62
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096. ddd(1)                                                     ddd(1)
  4097.  
  4098.  
  4099.               due to having detected a grabbed  pointer.   During
  4100.               this  delay,  a  working dialog pops up telling the
  4101.               user about imminent execution of  the  grab  action
  4102.               (see  the  `ggrraabbAAccttiioonn'  resource,  above).  If the
  4103.               pointer grab is released  within  this  delay,  the
  4104.               working  dialog  pops  down and no action is taken.
  4105.               This is done to exclude pointer grabs from  sources
  4106.               other  than  the  debugged program (including DDD).
  4107.               Default is 1100000000, or 10 seconds.
  4108.  
  4109.        ggrroouuppIIccoonniiffyy ((class GGrroouuppIIccoonniiffyy))
  4110.               If this is  `oonn',  (un)iconifying  any  DDD  window
  4111.               causes  all  other  DDD  windows  to (un)iconify as
  4112.               well.  Default is `ooffff', meaning that each DDD win-
  4113.               dow can be iconified on its own.
  4114.  
  4115.        ssaavveeHHiissttoorryyOOnnEExxiitt ((class SSaavveeHHiissttoorryyOOnnEExxiitt))
  4116.               If `oonn' (default), the command history is automati-
  4117.               cally saved when DDD exits.
  4118.  
  4119.        sseelleeccttAAllllBBiinnddiinnggss ((class BBiinnddiinnggSSttyyllee))
  4120.               Controls the key bindings for the select all opera-
  4121.               tion.
  4122.  
  4123.               +o If this is `MMoottiiff', Select All on SShhiifftt++CCttrrll++AA.
  4124.  
  4125.               +o If  this  is  `KKDDEE'  (default),  Select All is on
  4126.                 CCttrrll++AA.  This is  conformant  to  the  KDE  style
  4127.                 guide.   Note  that  this  means  that  CCttrrll++AA no
  4128.                 longer moves the cursor to  the  beginning  of  a
  4129.                 line; use the HHOOMMEE key instead.
  4130.  
  4131.        ssppllaasshhSSccrreeeenn ((class SSppllaasshhSSccrreeeenn))
  4132.               If  `oonn'  (default),  show a DDD splash screen upon
  4133.               start-up.
  4134.  
  4135.        ssppllaasshhSSccrreeeennCCoolloorrKKeeyy ((class CCoolloorrKKeeyy))
  4136.               The color key to use for  the  DDD  splash  screen.
  4137.               Possible values include:
  4138.  
  4139.               +o `cc' (default) for a color visual,
  4140.  
  4141.               +o `gg' for a multi-level greyscale visual,
  4142.  
  4143.               +o `gg44' for a 4-level greyscale visual, and
  4144.  
  4145.               +o `mm' for a dithered monochrome visual.
  4146.  
  4147.               +o `bbeesstt' chooses the best visual available for your
  4148.                 display.
  4149.  
  4150.               Note: if DDD runs on a monochrome  display,  or  if
  4151.               DDD  was compiled without the XPM library, only the
  4152.               monochrome version (`mm') can be shown.
  4153.  
  4154.  
  4155.  
  4156. DDD 3.1.1                   1998-12-06                         63
  4157.  
  4158.  
  4159.  
  4160.  
  4161.  
  4162. ddd(1)                                                     ddd(1)
  4163.  
  4164.  
  4165.        ssttaarrttuuppTTiippss ((class SSttaarrttuuppTTiippss))
  4166.               Whether a tip of the day is to be shown at  startup
  4167.               (`oonn', default) or not (`ooffff').
  4168.  
  4169.        ssttaarrttuuppTTiippCCoouunntt ((class SSttaarrttuuppTTiippCCoouunntt))
  4170.               The  number  _n of the tip of the day to be shown at
  4171.               startup.  See also the `ttiipp_n' resources.
  4172.  
  4173.        ssuupppprreessssWWaarrnniinnggss ((class SSuupppprreessssWWaarrnniinnggss))
  4174.               If `oonn', X warnings are suppressed.  This is  some-
  4175.               times  useful  for executables that were built on a
  4176.               machine with a different X or Motif  configuration.
  4177.               By default, this is `ooffff'.
  4178.  
  4179.        ttiipp_n (_c_l_a_s_s TTiipp))
  4180.               The tip of the day numbered _n (a string).
  4181.  
  4182.        mmaaxxUUnnddooDDeepptthh ((class MMaaxxUUnnddooDDeepptthh))
  4183.               The  maximum  number of entries in the undo buffer.
  4184.               This limits the  number  of  actions  that  can  be
  4185.               undone,  and the number of states that can be shown
  4186.               in historic mode.  Useful for limiting  DDD  memory
  4187.               usage.   A  negative value (default) means to place
  4188.               no limit.
  4189.  
  4190.        mmaaxxUUnnddooSSiizzee ((class MMaaxxUUnnddooSSiizzee))
  4191.               The maximum memory usage (in  bytes)  of  the  undo
  4192.               buffer.   Useful  for limiting DDD memory usage.  A
  4193.               negative value means to place no limit.  Default is
  4194.               22000000000000.
  4195.  
  4196.        uunniiccoonniiffyyWWhheennRReeaaddyy ((class UUnniiccoonniiffyyWWhheennRReeaaddyy))
  4197.               If this is `oonn' (default), the DDD windows are uni-
  4198.               conified automatically whenever GDB becomes  ready.
  4199.               This  way,  you  can iconify DDD during some longer
  4200.               operation and have it uniconify itself as  soon  as
  4201.               the  program  stops.   Setting this to `ooffff' leaves
  4202.               the DDD windows iconified.
  4203.  
  4204.        vvaalluueeTTiippss ((class TTiippss))
  4205.               Whether value tips are enabled (`oonn',  default)  or
  4206.               not (`ooffff').  Value tips affect DDD performance and
  4207.               may be distracting for some experienced users.
  4208.  
  4209.        vvaalluueeDDooccss ((class DDooccss))
  4210.               Whether the display of variable values in the  sta-
  4211.               tus line is enabled (`oonn', default) or not (`ooffff').
  4212.  
  4213.        wwaarrnnIIffLLoocckkeedd ((class WWaarrnnIIffLLoocckkeedd))
  4214.               Whether to warn if multiple DDD instances are  run-
  4215.               ning (`oonn') or not (`ooffff', default).
  4216.  
  4217.    SSoouurrccee WWiinnddooww
  4218.        The following resources determine the DDD source window.
  4219.  
  4220.  
  4221.  
  4222. DDD 3.1.1                   1998-12-06                         64
  4223.  
  4224.  
  4225.  
  4226.  
  4227.  
  4228. ddd(1)                                                     ddd(1)
  4229.  
  4230.  
  4231.        ccaacchheeGGllyypphhIImmaaggeess ((class CCaacchheeMMaacchhiinneeCCooddee))
  4232.               Whether to cache (share) glyph images (`oonn') or not
  4233.               (`ooffff').  Caching  glyph  images  requires  less  X
  4234.               resources, but has been reported to fail with Motif
  4235.               2.1 on XFree86 servers.  Default is `ooffff' for Motif
  4236.               2.1 or later on Linux machines, and `oonn' otherwise.
  4237.  
  4238.        ccaacchheeMMaacchhiinneeCCooddee ((class CCaacchheeMMaacchhiinneeCCooddee))
  4239.               Whether to cache disassembled machine  code  (`oonn',
  4240.               default)  or  not  (`ooffff').   Caching  machine code
  4241.               requires more memory, but makes DDD run faster.
  4242.  
  4243.        ccaacchheeSSoouurrcceeFFiilleess ((class CCaacchheeSSoouurrcceeFFiilleess))
  4244.               Whether to cache source files  (`oonn',  default)  or
  4245.               not  (`ooffff').   Caching  source files requires more
  4246.               memory, but makes DDD run faster.
  4247.  
  4248.        ddiissaasssseemmbbllee ((class DDiissaasssseemmbbllee))
  4249.               If this is `oonn', the source code  is  automatically
  4250.               disassembled.   The default is `ooffff'.  See also the
  4251.               `----ddiissaasssseemmbbllee'  and  `----nnoo--ddiissaasssseemmbbllee'   options,
  4252.               below.
  4253.  
  4254.        ddiissppllaayyGGllyypphhss ((class DDiissppllaayyGGllyypphhss))
  4255.               If this is `oonn', the current execution position and
  4256.               breakpoints are  displayed  as  glyphs;  otherwise,
  4257.               they are shown through characters in the text.  The
  4258.               default is  `oonn'.   See  also  the  `----ggllyypphhss'  and
  4259.               `----nnoo--ggllyypphhss' options, below.
  4260.  
  4261.        ddiissppllaayyLLiinneeNNuummbbeerrss ((class DDiissppllaayyLLiinneeNNuummbbeerrss))
  4262.               If  this is `oonn', lines in the source text are pre-
  4263.               fixed  with  their  respective  line  number.   The
  4264.               default is `ooffff'.
  4265.  
  4266.        ffiinnddCCaasseeSSeennssiittiivvee ((class FFiinnddCCaasseeSSeennssiittiivvee))
  4267.               If  this is `oonn' (default), the `FFiinndd' commands are
  4268.               case-sensitive.  Otherwise, occurrences  are  found
  4269.               regardless of case.
  4270.  
  4271.        ffiinnddWWoorrddssOOnnllyy ((class FFiinnddWWoorrddssOOnnllyy))
  4272.               If this is `oonn' (default), the `FFiinndd' commands find
  4273.               complete words only.  Otherwise,  arbitrary  occur-
  4274.               rences are found.
  4275.  
  4276.        ggllyypphhUUppddaatteeDDeellaayy ((class GGllyypphhUUppddaatteeDDeellaayy))
  4277.               A  delay  (in  ms)  that says how much time to wait
  4278.               before updating glyphs while scrolling  the  source
  4279.               text.   A  small  value  results  in  glyphs  being
  4280.               scrolled with the  text,  a  large  value  disables
  4281.               glyphs  while scrolling and makes scrolling faster.
  4282.               Default: 1100.
  4283.  
  4284.  
  4285.  
  4286.  
  4287.  
  4288. DDD 3.1.1                   1998-12-06                         65
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294. ddd(1)                                                     ddd(1)
  4295.  
  4296.  
  4297.        iinnddeennttCCooddee ((class IInnddeenntt))
  4298.               The number of columns to indent the  machine  code,
  4299.               such  that  there is enough place to display break-
  4300.               point locations.  Default: 44.
  4301.  
  4302.        iinnddeennttSSoouurrccee ((class IInnddeenntt))
  4303.               The number of columns to indent  the  source  code,
  4304.               such  that  there is enough place to display break-
  4305.               point locations.  Default: 00.
  4306.  
  4307.        iinnddeennttSSccrriipptt ((class IInnddeenntt))
  4308.               The minimum indentation for script languages,  such
  4309.               as Perl and Python.  Default: 44.
  4310.  
  4311.        lliinneeNNuummbbeerrWWiiddtthh ((class LLiinneeNNuummbbeerrWWiiddtthh))
  4312.               The  number  of columns to use for line numbers (if
  4313.               displaying line numbers is enabled).  Line  numbers
  4314.               wider  than  this  value extend into the breakpoint
  4315.               space.  Default: 44.
  4316.  
  4317.        lliinneessAAbboovveeCCuurrssoorr ((class LLiinneessAAbboovveeCCuurrssoorr))
  4318.               The minimum number of lines to show before the cur-
  4319.               rent location.  Default is 22.
  4320.  
  4321.        lliinneessBBeelloowwCCuurrssoorr ((class LLiinneessBBeelloowwCCuurrssoorr))
  4322.               The  minimum number of lines to show after the cur-
  4323.               rent location.  Default is 33.
  4324.  
  4325.        mmaaxxDDiissaasssseemmbbllee ((class MMaaxxDDiissaasssseemmbbllee))
  4326.               Maximum number of bytes  to  disassemble  (default:
  4327.               225566).  If this is zero, the entire current function
  4328.               is disassembled.
  4329.  
  4330.        mmaaxxGGllyypphhss ((class MMaaxxGGllyypphhss))
  4331.               The  maximum  number  of  glyphs  to  be  displayed
  4332.               (default:  1100).   Raising  this  value  causes more
  4333.               glyphs to be allocated, possibly wasting  resources
  4334.               that are never needed.
  4335.  
  4336.        ssoouurrcceeEEddiittiinngg ((class SSoouurrcceeEEddiittiinngg))
  4337.               If  this is `oonn', the displayed source code becomes
  4338.               editable.  This is an experimental feature and  may
  4339.               become obsolete in future DDD releases.  Default if
  4340.               `ooffff'.
  4341.  
  4342.        ttaabbWWiiddtthh ((class TTaabbWWiiddtthh))
  4343.               The tab width used in the source  window  (default:
  4344.               88)
  4345.  
  4346.        uusseeSSoouurrcceePPaatthh ((class UUsseeSSoouurrcceePPaatthh))
  4347.               If  this  is `ooffff' (default), the inferior debugger
  4348.               refers to source code locations only by their  base
  4349.               names.   If  this  is  `oonn' (default), DDD uses the
  4350.               full source code paths.
  4351.  
  4352.  
  4353.  
  4354. DDD 3.1.1                   1998-12-06                         66
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360. ddd(1)                                                     ddd(1)
  4361.  
  4362.  
  4363.    WWiinnddooww CCrreeaattiioonn aanndd LLaayyoouutt
  4364.        The following resources determine DDD window creation  and
  4365.        layout  as  well as the interaction with the X window man-
  4366.        ager.
  4367.  
  4368.        aauuttooRRaaiisseeTTooooll ((class AAuuttooRRaaiisseeTTooooll))
  4369.               If `oonn' (default), DDD will always keep the command
  4370.               tool  on top of other DDD windows.  If this setting
  4371.               interferes with your window  manager,  or  if  your
  4372.               window  manager  keeps the command tool on top any-
  4373.               way, set this resource to `ooffff'.
  4374.  
  4375.        aauuttooRRaaiisseeMMeennuu ((class AAuuttooRRaaiisseeMMeennuu))
  4376.               If `oonn' (default), DDD will always  keep  the  pull
  4377.               down  menu  on top of the DDD main window.  If this
  4378.               setting interferes with your window manager, or  if
  4379.               your  window  manager  does not auto-raise windows,
  4380.               set this resource to `ooffff':
  4381.  
  4382.                 DDdddd**aauuttooRRaaiisseeMMeennuu:: ooffff
  4383.  
  4384.  
  4385.        ccoolloorrWWMMIIccoonnss ((class CCoolloorrWWMMIIccoonnss))
  4386.               If `oonn' (default), DDD uses multi-color icons.   If
  4387.               your  window  manager  has trouble with multi-color
  4388.               icons, set this resource to `ooffff' and DDD will  use
  4389.               black-and-white icons instead.
  4390.  
  4391.        ddeeccoorraatteeTTooooll ((class DDeeccoorraattee))
  4392.               This  resource  controls the decoration of the com-
  4393.               mand tool.
  4394.  
  4395.               +o If this is `ooffff', the command tool is created  as
  4396.                 a _t_r_a_n_s_i_e_n_t _w_i_n_d_o_w.  Several window managers keep
  4397.                 transient windows automatically on top  of  their
  4398.                 parents,  which  is  appropriate  for the command
  4399.                 tool.  However, your window manager may  be  con-
  4400.                 figured  not to decorate transient windows, which
  4401.                 means that you cannot  easily  move  the  command
  4402.                 tool around.
  4403.  
  4404.               +o If this is `oonn', DDD realizes the command tool as
  4405.                 a _t_o_p_-_l_e_v_e_l _w_i_n_d_o_w.  Such windows are always dec-
  4406.                 orated by the window manager.  However, top-level
  4407.                 windows are not  automatically  kept  on  top  of
  4408.                 other  windows, such that you may wish to set the
  4409.                 `aauuttooRRaaiisseeTTooooll' resource, too.
  4410.  
  4411.               +o If this is `aauuttoo' (default), DDD  checks  whether
  4412.                 the window manager decorates transients.  If yes,
  4413.                 the command tool is realized as a transient  win-
  4414.                 dow (as in the `ooffff' setting); if no, the command
  4415.                 tool is realized as a top-level window (as in the
  4416.                 `oonn' setting).  Hence, the command tool is always
  4417.  
  4418.  
  4419.  
  4420. DDD 3.1.1                   1998-12-06                         67
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426. ddd(1)                                                     ddd(1)
  4427.  
  4428.  
  4429.                 decorated using the "best" method, but the  extra
  4430.                 check takes some time.
  4431.  
  4432.  
  4433.        ooppeennDDaattaaWWiinnddooww ((class WWiinnddooww))
  4434.               If  `ooffff' (default), the data window is closed upon
  4435.               start-up.
  4436.  
  4437.        ooppeennDDeebbuuggggeerrCCoonnssoollee ((class WWiinnddooww))
  4438.               If `ooffff',  the  debugger  console  is  closed  upon
  4439.               start-up.
  4440.  
  4441.        ooppeennSSoouurrcceeWWiinnddooww ((class WWiinnddooww))
  4442.               If  `ooffff',  the source window is closed upon start-
  4443.               up.
  4444.  
  4445.        sseeppaarraatteeDDaattaaWWiinnddooww ((class SSeeppaarraattee))
  4446.               If `oonn', the data window and the  debugger  console
  4447.               are  realized  in  different top-level windows.  If
  4448.               `ooffff' (default), the data window is attached to the
  4449.               debugger  console.  See also the `----aattttaacchh--wwiinnddoowwss'
  4450.               and `----aattttaacchh--ddaattaa--wwiinnddooww' options, below.
  4451.  
  4452.        sseeppaarraatteeEExxeeccWWiinnddooww ((class SSeeppaarraattee))
  4453.               If `oonn', the debugged program is executed in a sep-
  4454.               arate  execution  window.   If `ooffff' (default), the
  4455.               debugged program is executed in the console window.
  4456.               See also the `----eexxeecc--wwiinnddooww' and `----nnoo--eexxeecc--wwiinnddooww'
  4457.               options, below.
  4458.  
  4459.        sseeppaarraatteeSSoouurrcceeWWiinnddooww ((class SSeeppaarraattee))
  4460.               If `oonn', the source window and the debugger console
  4461.               are  realized  in  different top-level windows.  If
  4462.               `ooffff' (default), the source window is  attached  to
  4463.               the  debugger  console.   See  also  the `----aattttaacchh--
  4464.               wwiinnddoowwss'  and   `----aattttaacchh--ssoouurrccee--wwiinnddooww'   options,
  4465.               below.
  4466.  
  4467.        ssttaattuussAAttBBoottttoomm ((class SSttaattuussAAttBBoottttoomm))
  4468.               If `oonn' (default), the status line is placed at the
  4469.               bottom of the DDD source  window.   If  `ooffff',  the
  4470.               status  line is placed at the top of the DDD source
  4471.               window (as in DDD 1.x).  See also the `----ssttaattuuss--aatt--
  4472.               bboottttoomm' and `----ssttaattuuss--aatt--ttoopp' options, below.
  4473.  
  4474.        ssttiicckkyyTTooooll ((class SSttiicckkyyTTooooll))
  4475.               If  `oonn'  (default), the command tool automatically
  4476.               follows every movement of the source window.  When-
  4477.               ever  the  source window is moved, the command tool
  4478.               is moved by the same offset such that its  position
  4479.               relative  to  the  source window remains unchanged.
  4480.               If `ooffff', the command tool does not  follow  source
  4481.               window movements.
  4482.  
  4483.  
  4484.  
  4485.  
  4486. DDD 3.1.1                   1998-12-06                         68
  4487.  
  4488.  
  4489.  
  4490.  
  4491.  
  4492. ddd(1)                                                     ddd(1)
  4493.  
  4494.  
  4495.        ttrraannssiieennttDDiiaallooggss ((class TTrraannssiieennttDDiiaallooggss))
  4496.               If `oonn' (default), all dialogs are created as tran-
  4497.               sient windows--that is, they always stay on top  of
  4498.               the main DDD windows, and they iconify with it.  If
  4499.               `ooffff', the important selection dialogs, such as the
  4500.               breakpoint and display editors, are created as top-
  4501.               level windows on their own, and may be obscured  by
  4502.               the DDD main windows.
  4503.  
  4504.  
  4505.    DDeebbuuggggeerr SSeettttiinnggss
  4506.        The following resources determine the inferior debugger.
  4507.  
  4508.        aauuttooCCoommmmaannddss ((class AAuuttooCCoommmmaannddss))
  4509.               If  this is `oonn' (default), each line output by the
  4510.               inferior debugger beginning with the value  of  the
  4511.               `aauuttooCCoommmmaannddPPrreeffiixx'  resource  (see  below) will be
  4512.               interpreted as DDD command  and  executed.   Useful
  4513.               for  user-defined  commands; see `UUSSEERR--DDEEFFIINNEEDD CCOOMM--
  4514.               MMAANNDDSS', above.
  4515.  
  4516.        aauuttooCCoommmmaannddPPrreeffiixx ((class AAuuttooCCoommmmaannddPPrreeffiixx))
  4517.               The prefix for auto-commands.  By default, an empty
  4518.               string,  meaning  to generate a new prefix for each
  4519.               DDD session.  If this is set to `dddddd:: ', for  exam-
  4520.               ple,  each  GDB  output  in the form `dddddd:: _c_o_m_m_a_n_d'
  4521.               will cause DDD to execute _c_o_m_m_a_n_d.
  4522.  
  4523.        aauuttooDDeebbuuggggeerr ((class AAuuttooDDeebbuuggggeerr))
  4524.               If this is `oonn'  (default),  DDD  will  attempt  to
  4525.               determine  the  debugger  type  from its arguments,
  4526.               possibly overriding the  `ddeebbuuggggeerr'  resource  (see
  4527.               below).   If  this  is  `ooffff',  DDD will invoke the
  4528.               debugger  specified  by  the  `ddeebbuuggggeerr'   resource
  4529.               regardless of DDD arguments.
  4530.  
  4531.        bblloocckkTTTTYYIInnppuutt ((class BBlloocckkTTTTYYIInnppuutt))
  4532.               Whether DDD should block when reading data from the
  4533.               inferior debugger  via  the  pseudo-tty  interface.
  4534.               Some  systems _r_e_q_u_i_r_e this, such as Linux with libc
  4535.               5.4.33 and earlier; set it  to  `oonn'.   Some  other
  4536.               systems  _p_r_o_h_i_b_i_t this, such as Linux with GNU libc
  4537.               6 and later; set it to  `ooffff'.   The  value  `aauuttoo'
  4538.               (default)  will  always  select  the  "best" choice
  4539.               (that is, the best choice known to the DDD develop-
  4540.               ers).
  4541.  
  4542.        ddbbxxIInniittCCoommmmaannddss ((class IInniittCCoommmmaannddss))
  4543.               This  string  contains  a list of newline-separated
  4544.               commands  that  are  initially  sent  to  DBX.   By
  4545.               default, it is empty.
  4546.               Do not use this resource to customize DBX; instead,
  4547.               use a personal `$$HHOOMMEE//..ddbbxxiinniitt'  or  `$$HHOOMMEE//..ddbbxxrrcc'
  4548.               file.  See your DBX documentation for details.
  4549.  
  4550.  
  4551.  
  4552. DDD 3.1.1                   1998-12-06                         69
  4553.  
  4554.  
  4555.  
  4556.  
  4557.  
  4558. ddd(1)                                                     ddd(1)
  4559.  
  4560.  
  4561.        ddbbxxSSeettttiinnggss ((class SSeettttiinnggss))
  4562.               This  string  contains  a list of newline-separated
  4563.               commands that are also initially sent to  DBX.   By
  4564.               default, it is empty.
  4565.  
  4566.        ddeebbuuggggeerr ((class DDeebbuuggggeerr))
  4567.               The type of the inferior debugger to invoke (`ggddbb',
  4568.               `ddbbxx', `xxddbb',  `jjddbb',  `ppyyddbb',  or  `ppeerrll').   This
  4569.               resource   is  usually  set  through  the  `----ggddbb',
  4570.               `----ddbbxx', `----xxddbb', `----jjddbb', `----ppyyddbb', and  `----ppeerrll',
  4571.               options; see below for details.
  4572.  
  4573.        ddeebbuuggggeerrCCoommmmaanndd ((class DDeebbuuggggeerrCCoommmmaanndd))
  4574.               The name under which the inferior debugger is to be
  4575.               invoked.  If this string  is  empty,  the  debugger
  4576.               type  (`ddeebbuuggggeerr' resource) is used.  This resource
  4577.               is usually set through the `----ddeebbuuggggeerr' option; see
  4578.               below for details.
  4579.  
  4580.        ddeebbuuggggeerrHHoosstt ((class DDeebbuuggggeerrHHoosstt))
  4581.               The  host where the inferior debugger is to be exe-
  4582.               cuted; an empty string (default)  means  the  local
  4583.               host.   See the `----hhoosstt' option, below, and `RREEMMOOTTEE
  4584.               DDEEBBUUGGGGIINNGG', above.
  4585.  
  4586.        ddeebbuuggggeerrHHoossttLLooggiinn ((class DDeebbuuggggeerrHHoossttLLooggiinn))
  4587.               The login user name on the remote  host;  an  empty
  4588.               string  (default)  means using the local user name.
  4589.               See the `----llooggiinn' option, below, and `RREEMMOOTTEE DDEEBBUUGG--
  4590.               GGIINNGG', above.
  4591.  
  4592.        ddeebbuuggggeerrRRHHoosstt ((class DDeebbuuggggeerrRRHHoosstt))
  4593.               The  host where the inferior debugger is to be exe-
  4594.               cuted; an empty string (default) means to  use  the
  4595.               `ddeebbuuggggeerrHHoosstt' resource.  In contrast to `ddeebbuuggggeerr--
  4596.               HHoosstt', using this  resource  causes  DDD  to  login
  4597.               interactively  to  the  remote  host and invoke the
  4598.               inferior debugger from the remote shell.  See  also
  4599.               the  `----rrhhoosstt'  option,  below,  and `RREEMMOOTTEE DDEEBBUUGG--
  4600.               GGIINNGG', above.
  4601.  
  4602.        ddiissppllaayyTTiimmeeoouutt ((class DDiissppllaayyTTiimmeeoouutt))
  4603.               The time (in ms) to wait for the inferior  debugger
  4604.               to  finish  a partial display information.  Default
  4605.               is 22000000.
  4606.  
  4607.        ffuullllNNaammeeMMooddee ((class TTTTYYMMooddee))
  4608.               If this is `oonn', DDD  reports  the  current  source
  4609.               position on standard output in GDB `--ffuullllnnaammee' for-
  4610.               mat.  As a side effect, the source window  is  dis-
  4611.               abled   by  default.   See  also  the  `----ffuullllnnaammee'
  4612.               option, below.
  4613.  
  4614.  
  4615.  
  4616.  
  4617.  
  4618. DDD 3.1.1                   1998-12-06                         70
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624. ddd(1)                                                     ddd(1)
  4625.  
  4626.  
  4627.        ggddbbIInniittCCoommmmaannddss ((class IInniittCCoommmmaannddss))
  4628.               This string contains a  list  of  newline-separated
  4629.               commands  that  are  initially  sent  to GDB.  As a
  4630.               side-effect,  all  settings   specified   in   this
  4631.               resource are considered fixed and cannot be changed
  4632.               through the GDB settings panel, unless preceded  by
  4633.               white  space.   By  default,  the `ggddbbIInniittCCoommmmaannddss'
  4634.               resource contains some settings vital to DDD:
  4635.  
  4636.                 DDdddd**ggddbbIInniittCCoommmmaannddss:: \\
  4637.                 sseett hheeiigghhtt 00\\nn\\
  4638.                 sseett wwiiddtthh 00\\nn\\
  4639.                  sseett vveerrbboossee ooffff\\nn\\
  4640.                 sseett pprroommpptt ((ggddbb)) \\nn
  4641.  
  4642.               While the  `sseett  hheeiigghhtt',  `sseett  wwiiddtthh',  and  `sseett
  4643.               pprroommpptt'  settings are fixed, the `sseett vveerrbboossee' set-
  4644.               tings can be changed through the GDB settings panel
  4645.               (although  being  reset  upon  each new DDD invoca-
  4646.               tion).
  4647.               Do not use this resource to customize GDB; instead,
  4648.               use a personal `$$HHOOMMEE//..ggddbbiinniitt' file.  See your GDB
  4649.               documentation for details.
  4650.  
  4651.        ggddbbSSeettttiinnggss ((class SSeettttiinnggss))
  4652.               This string contains a  list  of  newline-separated
  4653.               commands  that are also initially sent to GDB.  Its
  4654.               default value is
  4655.  
  4656.                 DDdddd**ggddbbSSeettttiinnggss:: \\
  4657.                 sseett pprriinntt aassmm--ddeemmaannggllee oonn\\nn
  4658.  
  4659.               This resource is  used  to  save  and  restore  the
  4660.               debugger settings.
  4661.  
  4662.        jjddbbIInniittCCoommmmaannddss ((class IInniittCCoommmmaannddss))
  4663.               This  string  contains  a list of newline-separated
  4664.               commands that are  initially  sent  to  JDB.   This
  4665.               resource may be used to customize JDB.  By default,
  4666.               it is empty.
  4667.  
  4668.        jjddbbSSeettttiinnggss ((class SSeettttiinnggss))
  4669.               This string contains a  list  of  newline-separated
  4670.               commands  that  are also initially sent to JDB.  By
  4671.               default, it is empty.
  4672.  
  4673.               This resource is used by DDD to  save  and  restore
  4674.               JDB settings.
  4675.  
  4676.        ooppeennSSeelleeccttiioonn ((class OOppeennSSeelleeccttiioonn))
  4677.               If  this  is  `oonn',  DDD  invoked  without argument
  4678.               checks whether the current selection  or  clipboard
  4679.               contains the file name or URL of an executable pro-
  4680.               gram.  If this is so, DDD will  automatically  open
  4681.  
  4682.  
  4683.  
  4684. DDD 3.1.1                   1998-12-06                         71
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690. ddd(1)                                                     ddd(1)
  4691.  
  4692.  
  4693.               this  program  for  debugging.  If this resource is
  4694.               `ooffff' (default), DDD invoked without arguments will
  4695.               always start without a debugged program.
  4696.  
  4697.        ppeerrllIInniittCCoommmmaannddss ((class IInniittCCoommmmaannddss))
  4698.               This  string  contains  a list of newline-separated
  4699.               commands that are initially sent to the Perl debug-
  4700.               ger.  By default, it is empty.
  4701.  
  4702.               This  resource  may  be  used to customize the Perl
  4703.               debugger.
  4704.  
  4705.        ppyyddbbSSeettttiinnggss ((class SSeettttiinnggss))
  4706.               This string contains a  list  of  newline-separated
  4707.               commands  that  are also initially sent to the Perl
  4708.               debugger.  By default, it is empty.
  4709.  
  4710.               This resource is used by DDD to  save  and  restore
  4711.               Perl debugger settings.
  4712.  
  4713.        ppyyddbbIInniittCCoommmmaannddss ((class IInniittCCoommmmaannddss))
  4714.               This  string  contains  a list of newline-separated
  4715.               commands that  are  initially  sent  to  PYDB.   By
  4716.               default, it is empty.
  4717.               This resource may be used to customize PYDB.
  4718.  
  4719.        ppyyddbbSSeettttiinnggss ((class SSeettttiinnggss))
  4720.               This  string  contains  a list of newline-separated
  4721.               commands that are also initially sent to PYDB.   By
  4722.               default, it is empty.
  4723.  
  4724.               This  resource  is  used by DDD to save and restore
  4725.               PYDB settings.
  4726.  
  4727.        ppoossiittiioonnTTiimmeeoouutt ((class PPoossiittiioonnTTiimmeeoouutt))
  4728.               The time (in ms) to wait for the inferior  debugger
  4729.               to  finish a partial position information.  Default
  4730.               is 550000.
  4731.  
  4732.        qquueessttiioonnTTiimmeeoouutt ((class QQuueessttiioonnTTiimmeeoouutt))
  4733.               The time (in seconds)  to  wait  for  the  inferior
  4734.               debugger to reply.  Default is 1100.
  4735.  
  4736.        rrHHoossttIInniittCCoommmmaannddss ((class RRHHoossttIInniittCCoommmmaannddss))
  4737.               These  commands  are initially executed in a remote
  4738.               interactive session, using  the  `----rrhhoosstt'  option.
  4739.               By  default,  it  sets  up the remote terminal such
  4740.               that it suits DDD:
  4741.  
  4742.                 DDdddd**rrHHoossttIInniittCCoommmmaannddss:: ssttttyy --eecchhoo --oonnllccrr
  4743.  
  4744.               You may add other commands here--for  instance,  to
  4745.               set  the  executable  path  or to invoke a suitable
  4746.               shell.
  4747.  
  4748.  
  4749.  
  4750. DDD 3.1.1                   1998-12-06                         72
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756. ddd(1)                                                     ddd(1)
  4757.  
  4758.  
  4759.        ssoouurrcceeIInniittCCoommmmaannddss ((class SSoouurrcceeIInniittCCoommmmaannddss))
  4760.               If `oonn' (default), DDD writes all  GDB  initializa-
  4761.               tion  commands  into a temporary file and makes GDB
  4762.               read this file, rather than sending  each  initial-
  4763.               ization command separately.  This results in faster
  4764.               startup  (especially  if  you  have  several  user-
  4765.               defined commands).  If `ooffff', DDD makes GDB process
  4766.               each command separately.
  4767.  
  4768.        ssyynncchhrroonnoouussDDeebbuuggggeerr ((class SSyynncchhrroonnoouussDDeebbuuggggeerr))
  4769.               If `oonn', X  events  are  not  processed  while  the
  4770.               debugger is busy.  This may result in slightly bet-
  4771.               ter performance on single-processor  systems.   See
  4772.               also the `----ssyynncc--ddeebbuuggggeerr' option, below.
  4773.  
  4774.        tteerrmmiinnaatteeOOnnEEOOFF ((class TTeerrmmiinnaatteeOOnnEEOOFF))
  4775.               If  `oonn', DDD terminates the inferior debugger when
  4776.               DDD detects an EOF condition (that is, as  soon  as
  4777.               the  inferior  debugger closes its output channel).
  4778.               This was the default behavior in DDD 2.x  and  ear-
  4779.               lier.   If  `ooffff'  (default),  DDD takes no special
  4780.               action.
  4781.  
  4782.        ttttyyMMooddee ((class TTTTYYMMooddee))
  4783.               If `oonn', enable TTY  interface,  taking  additional
  4784.               debugger  commands from standard input and forward-
  4785.               ing debugger output on standard output.  As a  side
  4786.               effect,   the   debugger  console  is  disabled  by
  4787.               default.  See also  the  `----ttttyy'  and  `----ffuullllnnaammee'
  4788.               options, below.
  4789.  
  4790.        uusseeTTTTYYCCoommmmaanndd ((class UUsseeTTTTYYCCoommmmaanndd))
  4791.               If  `oonn', use the GDB `ttttyy' command for redirecting
  4792.               input/output to the separate execution window.   If
  4793.               `ooffff', use explicit redirection through shell redi-
  4794.               rection operators `<<'  and  `>>'.   The  default  is
  4795.               `ooffff'  (explicit  redirection),  since on some sys-
  4796.               tems, the `ttttyy' command does not work  properly  on
  4797.               some GDB versions.
  4798.  
  4799.        xxddbbIInniittCCoommmmaannddss ((class IInniittCCoommmmaannddss))
  4800.               This  string  contains  a list of newline-separated
  4801.               commands  that  are  initially  sent  to  XDB.   By
  4802.               default, it is empty.
  4803.               Do not use this resource to customize DBX; instead,
  4804.               use a personal `$$HHOOMMEE//..xxddbbrrcc' file.  See  your  XDB
  4805.               documentation for details.
  4806.  
  4807.        xxddbbSSeettttiinnggss ((class SSeettttiinnggss))
  4808.               This  string  contains  a list of newline-separated
  4809.               commands that are also initially sent to  XDB.   By
  4810.               default, it is empty.
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  
  4816. DDD 3.1.1                   1998-12-06                         73
  4817.  
  4818.  
  4819.  
  4820.  
  4821.  
  4822. ddd(1)                                                     ddd(1)
  4823.  
  4824.  
  4825.    UUsseerr--ddeeffiinneedd BBuuttttoonnss
  4826.        The  following resources can be used to create and control
  4827.        tool bars and user-defined buttons.
  4828.  
  4829.        aaccttiivveeBBuuttttoonnCCoolloorrKKeeyy ((class CCoolloorrKKeeyy))
  4830.               The XPM color key to use for the images  of  active
  4831.               buttons  (entered  or armed).  `cc' means color, `gg'
  4832.               (default) means grey, and `mm' means monochrome.
  4833.  
  4834.        bbuuttttoonnCCaappttiioonnss ((class BBuuttttoonnCCaappttiioonnss))
  4835.               Whether the tool bar buttons should be shown  using
  4836.               captions  (`oonn',  default) or not (`ooffff').  If nei-
  4837.               ther captions nor images are enabled, tool bar but-
  4838.               tons  are  shown  using  ordinary labels.  See also
  4839.               `bbuuttttoonnIImmaaggeess', below.
  4840.  
  4841.        bbuuttttoonnCCaappttiioonnGGeeoommeettrryy ((class BBuuttttoonnCCaappttiioonnGGeeoommeettrryy))
  4842.               The geometry of the  caption  subimage  within  the
  4843.               button icons.  Default is `2299xx77++00--00'.
  4844.  
  4845.        bbuuttttoonnIImmaaggeess ((class BBuuttttoonnIImmaaggeess))
  4846.               Whether  the tool bar buttons should be shown using
  4847.               images (`oonn', default) or not (`ooffff').  If  neither
  4848.               captions  nor  images are enabled, tool bar buttons
  4849.               are shown using ordinary labels.  See also `bbuuttttoonn--
  4850.               CCaappttiioonnss', above.
  4851.  
  4852.        bbuuttttoonnIImmaaggeeGGeeoommeettrryy ((class BBuuttttoonnIImmaaggeeGGeeoommeettrryy))
  4853.               The  geometry  of the image within the button icon.
  4854.               Default is `2255xx2211++22++00'.
  4855.  
  4856.        bbuuttttoonnCCoolloorrKKeeyy ((class CCoolloorrKKeeyy))
  4857.               The XPM color key to use for the images of inactive
  4858.               buttons  (non-entered  or  insensitive).  `cc' means
  4859.               color, `gg' (default)  means  grey,  and  `mm'  means
  4860.               monochrome.
  4861.  
  4862.        ccoommmmaannddTToooollBBaarr ((class TToooollBBaarr))
  4863.               Whether  the  tool  buttons  (see the `ttoooollBBuuttttoonnss'
  4864.               resource, below) should be  shown  in  a  tool  bar
  4865.               above  the  source window (`oonn') or within the com-
  4866.               mand tool (`ooffff', default).  Enabling  the  command
  4867.               tool  bar disables the command tool and vice versa.
  4868.  
  4869.        ccoommmmoonnTToooollBBaarr ((class TToooollBBaarr))
  4870.               Whether the tool bar buttons should be shown in one
  4871.               common tool bar at the top of the common DDD window
  4872.               (`oonn', default), or whether they should  be  placed
  4873.               in  two  separate  tool bars, one for data, and one
  4874.               for source operations, as in DDD 2.x (`ooffff').
  4875.  
  4876.        ccoonnssoolleeBBuuttttoonnss ((class BBuuttttoonnss))
  4877.               A newline-separated list of  buttons  to  be  added
  4878.               under the debugger console.  Each button issues the
  4879.  
  4880.  
  4881.  
  4882. DDD 3.1.1                   1998-12-06                         74
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888. ddd(1)                                                     ddd(1)
  4889.  
  4890.  
  4891.               command given by its name.
  4892.  
  4893.               The following characters have special meanings:
  4894.  
  4895.               +o Commands ending with  '......'  insert  their  name,
  4896.                 followed by a space, in the debugger console.
  4897.  
  4898.               +o Commands  ending  with  a control character (that
  4899.                 is, `^^' followed by a letter or `??')  insert  the
  4900.                 given control character.
  4901.  
  4902.               +o The  string  `(())' is replaced by the current con-
  4903.                 tents of the argument field `(())'.
  4904.  
  4905.               +o The  string  specified  in  the  `llaabbeellDDeelliimmiitteerr'
  4906.                 resource  (usually  `////')  separates  the command
  4907.                 name from the button label.  If no  button  label
  4908.                 is  specified,  the  capitalized  command will be
  4909.                 used as button label.
  4910.  
  4911.               The following button names are reserved:
  4912.  
  4913.               AAppppllyy     Send the given command to the debugger.
  4914.  
  4915.               BBaacckk      Lookup previously selected  source  posi-
  4916.                         tion.
  4917.  
  4918.               CClleeaarr     Clear current command
  4919.  
  4920.               CCoommpplleettee  Complete current command.
  4921.  
  4922.               EEddiitt      Edit current source file.
  4923.  
  4924.               FFoorrwwaarrdd   Lookup next selected source position.
  4925.  
  4926.               MMaakkee      Invoke the `mmaakkee' program, using the most
  4927.                         recently given arguments.
  4928.  
  4929.               NNeexxtt      Show next command
  4930.  
  4931.               NNoo        Answer current debugger prompt with `nnoo'.
  4932.                         This button is visible only if the debug-
  4933.                         ger asks a yes/no question.
  4934.  
  4935.               PPrreevv      Show previous command
  4936.  
  4937.               RReellooaadd    Reload source file.
  4938.  
  4939.               YYeess       Answer  current  debugger   prompt   with
  4940.                         `yyeess'.   This  button  is visible only if
  4941.                         the debugger asks a yes/no question.
  4942.  
  4943.  
  4944.               The default resource  value  is  empty--no  console
  4945.  
  4946.  
  4947.  
  4948. DDD 3.1.1                   1998-12-06                         75
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954. ddd(1)                                                     ddd(1)
  4955.  
  4956.  
  4957.               buttons are created.
  4958.  
  4959.               Here   are   some  examples  to  insert  into  your
  4960.               `$$HHOOMMEE//..dddddd//iinniitt' file.  These are the settings  of
  4961.               DDD 1.x:
  4962.  
  4963.                 DDdddd**ccoonnssoolleeBBuuttttoonnss:: YYeess\\nnNNoo\\nnbbrreeaakk^^CC
  4964.  
  4965.               This setting creates some more buttons:
  4966.  
  4967.                 DDdddd**ccoonnssoolleeBBuuttttoonnss:: \\
  4968.                 YYeess\\nnNNoo\\nnrruunn\\nnCClleeaarr\\nnPPrreevv\\nnNNeexxtt\\nnAAppppllyy\\nnbbrreeaakk^^CC
  4969.  
  4970.               See  also  the  `ddaattaaBBuuttttoonnss',  `ssoouurrcceeBBuuttttoonnss' and
  4971.               `ttoooollBBuuttttoonnss' resources, below.
  4972.  
  4973.  
  4974.        ddaattaaBBuuttttoonnss ((class BBuuttttoonnss))
  4975.               A newline-separated list of  buttons  to  be  added
  4976.               under  the  data  display.   Each button issues the
  4977.               command given by its name.   See  the  `ccoonnssoolleeBBuutt--
  4978.               ttoonnss'  resource,  above, for details on button syn-
  4979.               tax.
  4980.  
  4981.               The default resource value is empty--no source but-
  4982.               tons are created.
  4983.  
  4984.        ffllaattTToooollbbaarrBBuuttttoonnss ((class FFllaattBBuuttttoonnss))
  4985.               If `oonn' (default), all tool bar buttons with images
  4986.               or captions are given a `flat' appearance--the  3-D
  4987.               border  only  shows up when the pointer is over the
  4988.               icon.  If `ooffff', the 3-D border is  shown  all  the
  4989.               time.
  4990.  
  4991.        ffllaattDDiiaallooggBBuuttttoonnss ((class FFllaattBBuuttttoonnss))
  4992.               If  `oonn'  (default), all dialog buttons with images
  4993.               or captions are given a `flat' appearance--the  3-D
  4994.               border  only  shows up when the pointer is over the
  4995.               icon.  If `ooffff', the 3-D border is  shown  all  the
  4996.               time.
  4997.  
  4998.        llaabbeellDDeelliimmiitteerr ((class LLaabbeellDDeelliimmiitteerr))
  4999.               The  string  used  to separate labels from commands
  5000.               and shortcuts.  Default is `////'.
  5001.  
  5002.        ssoouurrcceeBBuuttttoonnss ((class BBuuttttoonnss))
  5003.               A newline-separated list of  buttons  to  be  added
  5004.               under the debugger console.  Each button issues the
  5005.               command given by its name.   See  the  `ccoonnssoolleeBBuutt--
  5006.               ttoonnss'  resource,  above, for details on button syn-
  5007.               tax.
  5008.  
  5009.               The default resource value is empty--no source but-
  5010.               tons are created.
  5011.  
  5012.  
  5013.  
  5014. DDD 3.1.1                   1998-12-06                         76
  5015.  
  5016.  
  5017.  
  5018.  
  5019.  
  5020. ddd(1)                                                     ddd(1)
  5021.  
  5022.  
  5023.               Here   are   some   example  to  insert  into  your
  5024.               `$$HHOOMMEE//..dddddd//iinniitt' file.  These are the settings  of
  5025.               DDD 1.x:
  5026.  
  5027.                 DDdddd**ssoouurrcceeBBuuttttoonnss:: \\
  5028.                 rruunn\\nnsstteepp\\nnnneexxtt\\nnsstteeppii\\nnnneexxttii\\nnccoonntt\\nn\\
  5029.                 ffiinniisshh\\nnkkiillll\\nnuupp\\nnddoowwnn\\nn\\
  5030.                 BBaacckk\\nnFFoorrwwaarrdd\\nnEEddiitt\\nniinntteerrrruupptt^^CC
  5031.  
  5032.               This  setting  creates  some  buttons which are not
  5033.               found on the command tool:
  5034.  
  5035.                 DDdddd**ssoouurrcceeBBuuttttoonnss:: \\
  5036.                 pprriinntt **(())\\nnggrraapphh ddiissppllaayy **(())\\nnpprriinntt //xx (())\\nn\\
  5037.                 wwhhaattiiss (())\\nnppttyyppee (())\\nnwwaattcchh (())\\nnuunnttiill\\nnsshheellll
  5038.  
  5039.               An even more professional setting  uses  customized
  5040.               button labels.
  5041.  
  5042.                 DDdddd**ssoouurrcceeBBuuttttoonnss:: \\
  5043.                 pprriinntt **(((()))) //// PPrriinntt **(())\\nn\\
  5044.                 ggrraapphh ddiissppllaayy **(((()))) //// DDiissppllaayy **(())\\nn\\
  5045.                 pprriinntt //xx (())\\nn\\
  5046.                 wwhhaattiiss (()) //// WWhhaatt iiss (())\\nn\\
  5047.                 ppttyyppee (())\\nn\\
  5048.                 wwaattcchh (())\\nn\\
  5049.                 uunnttiill\\nn\\
  5050.                 sshheellll
  5051.  
  5052.               See  also  the  `ccoonnssoolleeBBuuttttoonnss'  and `ddaattaaBBuuttttoonnss'
  5053.               resources, above, and the  `ttoooollBBuuttttoonnss'  resource,
  5054.               below.
  5055.  
  5056.        ttoooollbbaarrssAAttBBoottttoomm ((class TToooollbbaarrssAAttBBoottttoomm))
  5057.               Whether  source and data tool bars should be placed
  5058.               above  source  and   data,   respectively   (`ooffff',
  5059.               default), or below, as in DDD 2.x (`oonn').  See also
  5060.               the `----ttoooollbbaarrss--aatt--bboottttoomm' and  `----ttoooollbbaarrss--aatt--ttoopp'
  5061.               options, below.
  5062.  
  5063.        ttoooollBBuuttttoonnss ((class BBuuttttoonnss))
  5064.               A  newline-separated list of buttons to be included
  5065.               in the command tool or the command  tool  bar  (see
  5066.               the `ccoommmmaannddTToooollBBaarr' resource, above).  Each button
  5067.               issues the command given  by  its  name.   See  the
  5068.               `ccoonnssoolleeBBuuttttoonnss'  resource,  above,  for details on
  5069.               button syntax.
  5070.  
  5071.               The default resource value is
  5072.  
  5073.                 DDdddd**ttoooollBBuuttttoonnss:: \\
  5074.                 rruunn\\nnbbrreeaakk^^CC\\nnsstteepp\\nnsstteeppii\\nnnneexxtt\\nnnneexxttii\\nn\\
  5075.                 uunnttiill\\nnffiinniisshh\\nnccoonntt\\nn\\kkiillll\\nn\\
  5076.                 uupp\\nnddoowwnn\\nnBBaacckk\\nnFFoorrwwaarrdd\\nnEEddiitt\\nnMMaakkee
  5077.  
  5078.  
  5079.  
  5080. DDD 3.1.1                   1998-12-06                         77
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086. ddd(1)                                                     ddd(1)
  5087.  
  5088.  
  5089.               For each button, its location in the  command  tool
  5090.               must   be   specified   using   XXmmFFoorrmm   constraint
  5091.               resources.  See the `DDdddd' application defaults file
  5092.               for instructions.
  5093.  
  5094.               If  the  `ttoooollBBuuttttoonnss' resource value is empty, the
  5095.               command tool is not created.
  5096.  
  5097.        ttoooollRRiigghhttOOffffsseett ((class OOffffsseett))
  5098.               The distance between the right border of  the  com-
  5099.               mand  tool  and the right border of the source text
  5100.               (in pixels).  Default is 8 pixels.
  5101.  
  5102.        ttoooollTTooppOOffffsseett ((class OOffffsseett))
  5103.               The distance between the upper border of  the  com-
  5104.               mand  tool  and the upper border of the source text
  5105.               (in pixels).  Default is 8 pixels.
  5106.  
  5107.        vveerriiffyyBBuuttttoonnss ((class VVeerriiffyyBBuuttttoonnss))
  5108.               If `oonn' (default), verify for each  button  whether
  5109.               its  command  is actually supported by the inferior
  5110.               debugger.  If the command is unknown, the button is
  5111.               disabled.   If  this resource is `ooffff', no checking
  5112.               is done: all commands are accepted "as is".
  5113.  
  5114.    UUsseerr--DDeeffiinneedd NNeeww DDiissppllaayy MMeennuu
  5115.        The following resources control the user-defined `NNeeww DDiiss--
  5116.        ppllaayy' menu.
  5117.  
  5118.        ddbbxxDDiissppllaayySShhoorrttccuuttss ((class DDiissppllaayySShhoorrttccuuttss))
  5119.               A  newline-separated list of display expressions to
  5120.               be included in the `NNeeww DDiissppllaayy' menu for DBX.   If
  5121.               a line contains a label delimiter (the string `////';
  5122.               can be changed via the `llaabbeellDDeelliimmiitteerr'  resource),
  5123.               the  string before the delimiter is used as _e_x_p_r_e_s_-
  5124.               _s_i_o_n, and the string after the delimiter is used as
  5125.               label.   Otherwise,  the  label is `DDiissppllaayy _e_x_p_r_e_s_-
  5126.               _s_i_o_n'.  Upon activation, the string `(())' in _e_x_p_r_e_s_-
  5127.               _s_i_o_n  is  replaced  by  the  name  of the currently
  5128.               selected display.
  5129.  
  5130.        ggddbbDDiissppllaayySShhoorrttccuuttss ((class DDiissppllaayySShhoorrttccuuttss))
  5131.               A newline-separated list of display expressions  to
  5132.               be included in the `NNeeww DDiissppllaayy' menu for GDB.  See
  5133.               the description of `ddbbxxDDiissppllaayySShhoorrttccuuttss', above.
  5134.  
  5135.        jjddbbDDiissppllaayySShhoorrttccuuttss ((class DDiissppllaayySShhoorrttccuuttss))
  5136.               A newline-separated list of display expressions  to
  5137.               be included in the `NNeeww DDiissppllaayy' menu for JDB.  See
  5138.               the description of `ddbbxxDDiissppllaayySShhoorrttccuuttss', above.
  5139.  
  5140.        llaabbeellDDeelliimmiitteerr ((class LLaabbeellDDeelliimmiitteerr))
  5141.               The string used to separate  labels  from  commands
  5142.               and shortcuts.  Default is `////'.
  5143.  
  5144.  
  5145.  
  5146. DDD 3.1.1                   1998-12-06                         78
  5147.  
  5148.  
  5149.  
  5150.  
  5151.  
  5152. ddd(1)                                                     ddd(1)
  5153.  
  5154.  
  5155.        ppeerrllDDiissppllaayySShhoorrttccuuttss ((class DDiissppllaayySShhoorrttccuuttss))
  5156.               A  newline-separated list of display expressions to
  5157.               be included in the `NNeeww  DDiissppllaayy'  menu  for  Perl.
  5158.               See   the   description  of  `ddbbxxDDiissppllaayySShhoorrttccuuttss',
  5159.               above.
  5160.  
  5161.        ppyyddbbDDiissppllaayySShhoorrttccuuttss ((class DDiissppllaayySShhoorrttccuuttss))
  5162.               A newline-separated list of display expressions  to
  5163.               be  included  in  the  `NNeeww DDiissppllaayy' menu for PYDB.
  5164.               See  the  description   of   `ddbbxxDDiissppllaayySShhoorrttccuuttss',
  5165.               above.
  5166.  
  5167.        xxddbbDDiissppllaayySShhoorrttccuuttss ((class DDiissppllaayySShhoorrttccuuttss))
  5168.               A  newline-separated list of display expressions to
  5169.               be included in the `NNeeww DDiissppllaayy' menu for XDB.  See
  5170.               the description of `ddbbxxDDiissppllaayySShhoorrttccuuttss', above.
  5171.  
  5172.    DDaattaa DDiissppllaayy
  5173.        The following resources control the data display.
  5174.  
  5175.        aalliiggnn22ddAArrrraayyss ((class AAlliiggnn22ddAArrrraayyss))
  5176.               If  `oonn'  (default),  DDD  lays out two-dimensional
  5177.               arrays as tables, such that all array elements  are
  5178.               aligned  with  each  other.  If `ooffff', DDD treats a
  5179.               two-dimensional  array  as   an   array   of   one-
  5180.               dimensional arrays, each aligned on its own.
  5181.  
  5182.        aauuttooCClloosseeDDaattaaWWiinnddooww ((class AAuuttooCClloossee))
  5183.               If  this  is  `oonn'  (default) and DDD is in stacked
  5184.               window mode, deleting the  last  display  automati-
  5185.               cally  closes  the  data window.  If this is `ooffff',
  5186.               the data window stays open even after deleting  the
  5187.               last display.
  5188.  
  5189.        bbuummppDDiissppllaayyss ((class BBuummppDDiissppllaayyss))
  5190.               If some display _D changes size and this resource is
  5191.               `oonn' (default), DDD assigns new positions  to  dis-
  5192.               plays  below  and  on  the right of _D such that the
  5193.               distance between  displays  remains  constant.   If
  5194.               this is `ooffff', other displays are not rearranged.
  5195.  
  5196.        cclluusstteerrDDiissppllaayyss ((class CClluusstteerrDDiissppllaayyss))
  5197.               If  `oonn',  new independent data displays will auto-
  5198.               matically be clustered.  Default is `ooffff',  meaning
  5199.               to leave new displays unclustered.
  5200.  
  5201.        ddeelleetteeAAlliiaassDDiissppllaayyss ((class DDeelleetteeAAlliiaassDDiissppllaayyss))
  5202.               If  this is `oonn' (default), the `UUnnddiissppllaayy (())' but-
  5203.               ton also deletes all aliases of the  selected  dis-
  5204.               plays.   If  this  is `ooffff', only the selected dis-
  5205.               plays are deleted; the aliases remain, and  one  of
  5206.               the aliases will be unsuppressed.
  5207.  
  5208.  
  5209.  
  5210.  
  5211.  
  5212. DDD 3.1.1                   1998-12-06                         79
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218. ddd(1)                                                     ddd(1)
  5219.  
  5220.  
  5221.        ddeetteeccttAAlliiaasseess ((class DDeetteeccttAAlliiaasseess))
  5222.               If  `oonn',  DDD  attempts  to  recognize shared data
  5223.               structures.   See  `EExxaammiinniinngg  sshhaarreedd  ddaattaa  ssttrruucc--
  5224.               ttuurreess',  above,  for  a discussion.  The default is
  5225.               `ooffff', meaning that shared data structures are  not
  5226.               recognized.
  5227.  
  5228.        eexxppaannddRReeppeeaatteeddVVaalluueess ((class EExxppaannddRReeppeeaatteeddVVaalluueess))
  5229.               GDB  can  print  repeated  array elements as `_V_A_L_U_E
  5230.               <<rreeppeeaatteedd _N ttiimmeess>>'.  If `eexxppaannddRReeppeeaatteeddVVaalluueess'  is
  5231.               `oonn',   DDD  will  display  _N  instances  of  _V_A_L_U_E
  5232.               instead.   If   `eexxppaannddRReeppeeaatteeddVVaalluueess'   is   `ooffff'
  5233.               (default),  DDD  will  display  _V_A_L_U_E  with  `<<_Nxx>>''
  5234.               aappppeennddeedd ttoo iinnddiiccaattee tthhee rreeppeettiittiioonn..
  5235.  
  5236.        hhiiddeeIInnaaccttiivveeDDiissppllaayyss ((ccllaassss HHiiddeeIInnaaccttiivveeDDiissppllaayyss))
  5237.               If some display gets out of scope and this resource
  5238.               is  `oonn'  (default),  DDD  removes it from the data
  5239.               display.  If this is `ooffff', it is simply  disabled.
  5240.  
  5241.        ppaannnneeddGGrraapphhEEddiittoorr ((class PPaannnneeddGGrraapphhEEddiittoorr))
  5242.               The control to scroll the graph.
  5243.  
  5244.               +o If this is `oonn', an Athena panner is used (a kind
  5245.                 of two-directional scrollbar).
  5246.  
  5247.               +o If this is `ooffff' (default), two Motif  scrollbars
  5248.                 are used.
  5249.  
  5250.               See    also   the   `----ssccrroolllleedd--ggrraapphh--eeddiittoorr'   and
  5251.               `----ppaannnneedd--ggrraapphh--eeddiittoorr' options, below.
  5252.  
  5253.        ppaappeerrSSiizzee ((class PPaappeerrSSiizzee))
  5254.               The paper size used for printing, in format _w_i_d_t_h x
  5255.               _h_e_i_g_h_t.   The  default  is  A4  format, or `221100mmmm xx
  5256.               229977mmmm'.
  5257.  
  5258.        sshhoowwBBaasseeDDiissppllaayyTTiittlleess ((class SShhoowwDDiissppllaayyTTiittlleess))
  5259.               Whether to assign titles to base (independent) dis-
  5260.               plays or not.  Default is `oonn'.
  5261.  
  5262.        sshhoowwDDeeppeennddeennttDDiissppllaayyTTiittlleess ((class SShhoowwDDiissppllaayyTTiittlleess))
  5263.               Whether  to  assign titles to dependent displays or
  5264.               not.  Default is `ooffff'.
  5265.  
  5266.        ttyyppeeddAAlliiaasseess ((class TTyyppeeddAAlliiaasseess))
  5267.               If `oonn' (default), DDD requires structural  equiva-
  5268.               lence in order to recognize shared data structures.
  5269.               If this is `ooffff', two displays at the same  address
  5270.               are  considered aliases, regardless of their struc-
  5271.               ture.
  5272.  
  5273.        vvssllBBaasseeDDeeffss ((class VVSSLLDDeeffss))
  5274.               A string with additional VSL definitions  that  are
  5275.  
  5276.  
  5277.  
  5278. DDD 3.1.1                   1998-12-06                         80
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284. ddd(1)                                                     ddd(1)
  5285.  
  5286.  
  5287.               appended to the builtin VSL library.  This resource
  5288.               is prepended to the `vvssllDDeeffss'  resource  below  and
  5289.               set  in  the  DDD  application defaults file; don't
  5290.               change it.
  5291.  
  5292.        vvssllDDeeffss ((class VVSSLLDDeeffss))
  5293.               A string with additional VSL definitions  that  are
  5294.               appended  to  the builtin VSL library.  The default
  5295.               value is an empty string.   This  resource  can  be
  5296.               used  to  override  specific  VSL  definitions that
  5297.               affect the data display.
  5298.  
  5299.               The general pattern to replace a  function  defini-
  5300.               tion _f_u_n_c_t_i_o_n with a new definition _n_e_w___d_e_f is:
  5301.  
  5302.               ##pprraaggmmaa rreeppllaaccee _f_u_n_c_t_i_o_n
  5303.               _f_u_n_c_t_i_o_n((_a_r_g_s...)) == _n_e_w___d_e_f;;
  5304.  
  5305.               The following VSL functions are frequently used:
  5306.  
  5307.               ccoolloorr((_b_o_x,, _f_o_r_e_g_r_o_u_n_d [[,, _b_a_c_k_g_r_o_u_n_d]]))
  5308.                         Set  the _f_o_r_e_g_r_o_u_n_d and _b_a_c_k_g_r_o_u_n_d colors
  5309.                         of _b_o_x.
  5310.  
  5311.               ddiissppllaayy__ccoolloorr((_b_o_x))
  5312.                         The  color   used   in   data   displays.
  5313.                         Default: ccoolloorr((_b_o_x,, ""bbllaacckk"",, ""wwhhiittee""))
  5314.  
  5315.               ttiittllee__ccoolloorr((_b_o_x))
  5316.                         The   color   used   in  the  title  bar.
  5317.                         Default: ccoolloorr((_b_o_x,, ""bbllaacckk""))
  5318.  
  5319.               ddiissaabblleedd__ccoolloorr((_b_o_x))
  5320.                         The  color  used  for   disabled   boxes.
  5321.                         Default: ccoolloorr((_b_o_x,, ""wwhhiittee"",, ""ggrreeyy5500""))
  5322.  
  5323.               ssiimmppllee__ccoolloorr((_b_o_x))
  5324.                         The   color   used   for  simple  values.
  5325.                         Default: ccoolloorr((_b_o_x,, ""bbllaacckk""))
  5326.  
  5327.               ppooiinntteerr__ccoolloorr((_b_o_x))
  5328.                         The color used  for  pointers.   Default:
  5329.                         ccoolloorr((_b_o_x,, ""bblluuee44""))
  5330.  
  5331.               ssttrruucctt__ccoolloorr((_b_o_x))
  5332.                         The  color used for structures.  Default:
  5333.                         ccoolloorr((_b_o_x,, ""bbllaacckk""))
  5334.  
  5335.               aarrrraayy__ccoolloorr((_b_o_x))
  5336.                         The  color  used  for  arrays.   Default:
  5337.                         ccoolloorr((_b_o_x,, ""bblluuee44""))
  5338.  
  5339.               rreeffeerreennccee__ccoolloorr((_b_o_x))
  5340.                         The  color used for references.  Default:
  5341.  
  5342.  
  5343.  
  5344. DDD 3.1.1                   1998-12-06                         81
  5345.  
  5346.  
  5347.  
  5348.  
  5349.  
  5350. ddd(1)                                                     ddd(1)
  5351.  
  5352.  
  5353.                         ccoolloorr((_b_o_x,, ""bblluuee44""))
  5354.  
  5355.               cchhaannggeedd__ccoolloorr((_b_o_x))
  5356.                         The  color  used  for   changed   values.
  5357.                         Default: ccoolloorr((_b_o_x,, ""bbllaacckk"",, ""##ffffffffcccc""))
  5358.  
  5359.               ssttddffoonnttffaammiillyy(())
  5360.                         The   font  family  used.   One  of  ffaamm--
  5361.                         iillyy__ttiimmeess(()),    ffaammiillyy__ccoouurriieerr(()),    ffaamm--
  5362.                         iillyy__hheellvveettiiccaa(()), ffaammiillyy__nneeww__cceennttuurryy(()), or
  5363.                         ffaammiillyy__ttyyppeewwrriitteerr(()) (default).
  5364.  
  5365.               ssttddffoonnttssiizzee(())
  5366.                         The  font  size  used  (in  pixels).    00
  5367.                         (default)  means  to  use ssttddffoonnttppooiinnttss(())
  5368.                         instead.
  5369.  
  5370.               ssttddffoonnttppooiinnttss(())
  5371.                         The font size used (in 1/10  points).   00
  5372.                         means   to   use  ssttddffoonnttssiizzee(())  instead.
  5373.                         Default value: 9900.
  5374.  
  5375.               ssttddffoonnttwweeiigghhtt(())
  5376.                         The    font    weight    used.     Either
  5377.                         wweeiigghhtt__mmeeddiiuumm(())        (default)       or
  5378.                         wweeiigghhtt__bboolldd(()).
  5379.  
  5380.               To set the pointer color to "red4", use
  5381.  
  5382.                 DDdddd**vvssllDDeeffss:: \\
  5383.                 ##pprraaggmmaa rreeppllaaccee ppooiinntteerr__ccoolloorr\\nn\\
  5384.                 ppooiinntteerr__ccoolloorr((bbooxx)) == ccoolloorr((bbooxx,, ""rreedd44""));;\\nn
  5385.  
  5386.               To  set  the  default  font  size  to   resolution-
  5387.               independent 10.0 points, use
  5388.  
  5389.                 DDdddd**vvssllDDeeffss:: \\
  5390.                 ##pprraaggmmaa rreeppllaaccee ssttddffoonnttssiizzee\\nn\\
  5391.                 ##pprraaggmmaa rreeppllaaccee ssttddffoonnttppooiinnttss\\nn\\
  5392.                 ssttddffoonnttssiizzee(()) == 00;;\\nn
  5393.                 ssttddffoonnttppooiinnttss(()) == 110000;;\\nn
  5394.  
  5395.               To set the default font to 12-pixel courier, use
  5396.  
  5397.                 DDdddd**vvssllDDeeffss:: \\
  5398.                 ##pprraaggmmaa rreeppllaaccee ssttddffoonnttssiizzee\\nn\\
  5399.                 ##pprraaggmmaa rreeppllaaccee ssttddffoonnttffaammiillyy\\nn\\
  5400.                 ssttddffoonnttssiizzee(()) == 1122;;\\nn\\
  5401.                 ssttddffoonnttffaammiillyy(()) == ffaammiillyy__ccoouurriieerr(());;\\nn
  5402.  
  5403.               See  the  file `dddddd..vvssll' for further definitions to
  5404.               override using the `vvssllDDeeffss' resource.
  5405.  
  5406.  
  5407.  
  5408.  
  5409.  
  5410. DDD 3.1.1                   1998-12-06                         82
  5411.  
  5412.  
  5413.  
  5414.  
  5415.  
  5416. ddd(1)                                                     ddd(1)
  5417.  
  5418.  
  5419.        vvssllLLiibbrraarryy ((class VVSSLLLLiibbrraarryy))
  5420.               The VSL library to use.  `bbuuiillttiinn' (default)  means
  5421.               to  use  the  built-in  library, any other value is
  5422.               used as file name.
  5423.  
  5424.        vvssllPPaatthh ((class VVSSLLPPaatthh))
  5425.               A colon-separated list of directories to search for
  5426.               VSL  include  files.   Default  is `..', the current
  5427.               directory.
  5428.  
  5429.               If your DDD source  distribution  is  installed  in
  5430.               `//oopptt//ssrrcc',  you  can use the following settings to
  5431.               read the VSL library from `//hhoommee//jjooee//dddddd..vvssll':
  5432.  
  5433.                 DDdddd**vvssllLLiibbrraarryy::  //hhoommee//jjooee//dddddd..vvssll
  5434.                 DDdddd**vvssllPPaatthh::  \\
  5435.                 ..:://oopptt//ssrrcc//dddddd//dddddd:://oopptt//ssrrcc//dddddd//vvsslllliibb
  5436.  
  5437.               VSL include files referenced by `//hhoommee//jjooee//dddddd..vvssll'
  5438.               are  searched  first  in the current directory `..',
  5439.               then   in   `//oopptt//ssrrcc//dddddd//dddddd//',   and   then    in
  5440.               `//oopptt//ssrrcc//dddddd//vvsslllliibb//'.
  5441.  
  5442.               Instead  of  supplying  another  VSL library, it is
  5443.               often easier to specify some minor changes  to  the
  5444.               built-in  library.   See  the  `vvssllDDeeffss'  resource,
  5445.               above, for details.
  5446.  
  5447.    PPlloott WWiinnddooww
  5448.        The following resources control the plot window.
  5449.  
  5450.        pplloottTTeerrmmTTyyppee ((class PPlloottTTeerrmmTTyyppee))
  5451.               The Gnuplot terminal type.  Can  have  one  of  two
  5452.               values:
  5453.  
  5454.        +o If this is `xx1111', DDD "swallows" the Gnuplot output win-
  5455.          dow into its own user interface.  Some window  managers,
  5456.          notably MWM, have trouble with swallowing techniques.
  5457.  
  5458.        +o Setting this resource to `xxlliibb' (default) makes DDD pro-
  5459.          vide a _b_u_i_l_t_i_n _p_l_o_t _w_i_n_d_o_w instead.  In this mode, plots
  5460.          work  well  with  any  window manager, but are less cus-
  5461.          tomizable (Gnuplot resources are not understood).
  5462.  
  5463.        pplloottCCoommmmaanndd ((class PPlloottCCoommmmaanndd))
  5464.          The name of a Gnuplot executable.  Default is `ggnnuupplloott',
  5465.          followed  by  some options to set up colors and the ini-
  5466.          tial geometry.
  5467.  
  5468.        pplloottWWiinnddoowwCCllaassss ((class PPlloottWWiinnddoowwCCllaassss))
  5469.          The class of the Gnuplot output window.   When  invoking
  5470.          Gnuplot,  DDD  waits  for  a  window with this class and
  5471.          incorporates it into  its  own  user  interface  (unless
  5472.          `pplloottTTeerrmmTTyyppee'   is  `xxlliibb';  see  above).   Default  is
  5473.  
  5474.  
  5475.  
  5476. DDD 3.1.1                   1998-12-06                         83
  5477.  
  5478.  
  5479.  
  5480.  
  5481.  
  5482. ddd(1)                                                     ddd(1)
  5483.  
  5484.  
  5485.          `GGnnuupplloott'.
  5486.  
  5487.        pplloottWWiinnddoowwDDeellaayy ((class WWiinnddoowwDDeellaayy))
  5488.          The time (in ms) to wait for the creation of the Gnuplot
  5489.          window.  Before this delay, DDD looks at each newly cre-
  5490.          ated window to see whether this is the  plot  window  to
  5491.          swallow.   This is cheap, but unfortunately, some window
  5492.          managers do not pass the creation event to DDD.  If this
  5493.          delay has passed, and DDD has not found the plot window,
  5494.          DDD searches  _a_l_l  existing  windows,  which  is  pretty
  5495.          expensive.  Default time is 22000000.
  5496.  
  5497.        pplloottIInniittCCoommmmaannddss ((class PPlloottIInniittCCoommmmaannddss))
  5498.          The initial Gnuplot commands issued by DDD.  Default is:
  5499.  
  5500.            sseett ppaarraammeettrriicc
  5501.            sseett uurraannggee [[00::11]]
  5502.            sseett vvrraannggee [[00::11]]
  5503.            sseett ttrraannggee [[00::11]]
  5504.  
  5505.          The `ppaarraammeettrriicc' setting is  required  to  make  Gnuplot
  5506.          understand  the  data files as generated DDD.  The range
  5507.          commands are used to plot scalars.
  5508.  
  5509.        pplloott22ddSSeettttiinnggss ((class PPlloottSSeettttiinnggss))
  5510.          Additional initial settings for 2-D plots.   Default  is
  5511.          `sseett  nnoobboorrddeerr'.   Feel free to customize these settings
  5512.          as desired.
  5513.  
  5514.        pplloott33ddSSeettttiinnggss ((class PPlloottSSeettttiinnggss))
  5515.          Additional initial settings for 3-D plots.   Default  is
  5516.          `sseett  bboorrddeerr'.  Feel free to customize these settings as
  5517.          desired.
  5518.  
  5519.  
  5520.    DDeebbuuggggeerr CCoonnssoollee
  5521.        The following resources control the debugger console.
  5522.  
  5523.        lliinneeBBuuffffeerreeddCCoonnssoollee ((class LLiinneeBBuuffffeerreedd))
  5524.               If this is `oonn' (default), each line from the infe-
  5525.               rior  is  output  on  each own, such that the final
  5526.               line is placed at the bottom of the  debugger  con-
  5527.               sole.   If this is `ooffff', all lines are output as a
  5528.               whole.  This is faster, but  results  in  a  random
  5529.               position of the last line.
  5530.  
  5531.  
  5532.    VVaalluuee HHiissttoorriieess
  5533.        The  following resources control the pop-down value histo-
  5534.        ries associated with various text fields.
  5535.  
  5536.        ppooppddoowwnnHHiissttoorryySSiizzee ((class HHiissttoorryySSiizzee))
  5537.               The maximum number of items to display in  pop-down
  5538.               value  histories.   A value of 00 (default) means an
  5539.  
  5540.  
  5541.  
  5542. DDD 3.1.1                   1998-12-06                         84
  5543.  
  5544.  
  5545.  
  5546.  
  5547.  
  5548. ddd(1)                                                     ddd(1)
  5549.  
  5550.  
  5551.               unlimited number of values.
  5552.  
  5553.        ssoorrttPPooppddoowwnnHHiissttoorryy ((class SSoorrttPPooppddoowwnnHHiissttoorryy))
  5554.               If `oonn' (default), items in the pop-down value his-
  5555.               tories  are  sorted alphabetically.  If `ooffff', most
  5556.               recently used values will appear at the top.
  5557.  
  5558.  
  5559.    CCuussttoommiizziinngg HHeellppeerrss
  5560.        The  following  resources  determine   external   programs
  5561.        invoked by DDD.
  5562.  
  5563.        eeddiittCCoommmmaanndd ((class EEddiittCCoommmmaanndd))
  5564.               A  command  string  to invoke an editor on the spe-
  5565.               cific file.  `@@LLIINNEE@@' is replaced  by  the  current
  5566.               line  number,  `@@FFIILLEE@@'  by  the  file  name.   The
  5567.               default is to invoke $$XXEEDDIITTOORR first, then  $$EEDDIITTOORR,
  5568.               then vvii:
  5569.  
  5570.                 DDdddd**eeddiittCCoommmmaanndd:: \\
  5571.                 $${{XXEEDDIITTOORR--ffaallssee}} ++@@LLIINNEE@@ @@FFIILLEE@@ \\
  5572.                 |||| xxtteerrmm --ee $${{EEDDIITTOORR--vvii}} ++@@LLIINNEE@@ @@FFIILLEE@@
  5573.  
  5574.               This `..dddddd//iinniitt' setting invokes an editing session
  5575.               for an _X_E_m_a_c_s editor running _g_n_u_s_e_r_v:
  5576.  
  5577.                 DDdddd**eeddiittCCoommmmaanndd:: ggnnuucclliieenntt ++@@LLIINNEE@@ @@FFIILLEE@@
  5578.  
  5579.               This `..dddddd//iinniitt' setting invokes an editing session
  5580.               for an _E_m_a_c_s editor running _e_m_a_c_s_s_e_r_v_e_r:
  5581.  
  5582.                 DDdddd**eeddiittCCoommmmaanndd:: eemmaaccsscclliieenntt ++@@LLIINNEE@@ @@FFIILLEE@@
  5583.  
  5584.  
  5585.        ffoonnttSSeelleeccttCCoommmmaanndd ((class FFoonnttSSeelleeccttCCoommmmaanndd))
  5586.               A  command  to  select  from  a list of fonts.  The
  5587.               string `@@FFOONNTT@@' is  replaced  by  the  current  DDD
  5588.               default  font; the string `@@TTYYPPEE@@' is replaced by a
  5589.               symbolic name of the DDD font to edit.  The program
  5590.               must  either place the name of the selected font in
  5591.               the PRIMARY selection or print the selected font on
  5592.               standard output.  A typical value is:
  5593.  
  5594.                 DDdddd**ffoonnttSSeelleeccttCCoommmmaanndd:: xxffoonnttsseell --pprriinntt
  5595.  
  5596.  
  5597.        ggeettCCoorreeCCoommmmaanndd ((class GGeettCCoorreeCCoommmmaanndd))
  5598.               A  command  to get a core dump of a running process
  5599.               (typically, `ggccoorree') `@@FFIILLEE@@' is  replaced  by  the
  5600.               base  name  of  the  file  to  create;  `@@PPIIDD@@'  is
  5601.               replaced by the process id.   The  output  must  be
  5602.               written to `@@FFIILLEE@@..@@PPIIDD@@'.
  5603.               Leave  this  entry  empty if you have no `ggccoorree' or
  5604.               similar command.
  5605.  
  5606.  
  5607.  
  5608. DDD 3.1.1                   1998-12-06                         85
  5609.  
  5610.  
  5611.  
  5612.  
  5613.  
  5614. ddd(1)                                                     ddd(1)
  5615.  
  5616.  
  5617.        lleessssTTiiffVVeerrssiioonn ((class LLeessssTTiiffVVeerrssiioonn))
  5618.               Indicates  the  LessTif  version  DDD  is   running
  5619.               against.   For  LessTif version _x_._y, the value is _x
  5620.               multiplied by 1000 plus _y--for instance, the  value
  5621.               7799  stands  for  LessTif  0.79  and  the value 11000055
  5622.               stands for LessTif 1.5.
  5623.               If the value of this resource is  less  than  1000,
  5624.               indicating  LessTif  0.99  or  earlier, DDD enables
  5625.               version-specific hacks  to  make  DDD  work  around
  5626.               LessTif bugs and deficiencies.
  5627.               If  DDD  was  compiled against LessTif, the default
  5628.               value is the value of the `LLeessssTTiiffVVeerrssiioonn' macro in
  5629.               <<XXmm//XXmm..hh>>.   If DDD was compiled against OSF/Motif,
  5630.               the default value is 11000000, disabling  all  LessTif-
  5631.               specific hacks.
  5632.  
  5633.        lliissttCCoorreeCCoommmmaanndd ((class lliissttCCoorreeCCoommmmaanndd))
  5634.               The  command  to  list all core files on the remote
  5635.               host.  The string `@@MMAASSKK@@' is replaced  by  a  file
  5636.               filter.  The default setting is:
  5637.  
  5638.                 DDdddd**lliissttCCoorreeCCoommmmaanndd:: \\
  5639.                 ffiillee @@MMAASSKK@@ || ggrreepp ''..**::..**ccoorree..**'' \\
  5640.                 || ccuutt --dd:: --ff11
  5641.  
  5642.  
  5643.        lliissttDDiirrCCoommmmaanndd ((class lliissttDDiirrCCoommmmaanndd))
  5644.               The  command  to list all directories on the remote
  5645.               host.  The string `@@MMAASSKK@@' is replaced  by  a  file
  5646.               filter.  The default setting is:
  5647.  
  5648.                 DDdddd**lliissttDDiirrCCoommmmaanndd:: \\
  5649.                 ffiillee @@MMAASSKK@@ || ggrreepp ''..**::..**ddiirreeccttoorryy..**'' \\
  5650.                 || ccuutt --dd:: --ff11
  5651.  
  5652.  
  5653.        lliissttEExxeeccCCoommmmaanndd ((class lliissttEExxeeccCCoommmmaanndd))
  5654.               The  command  to  list  all executable files on the
  5655.               remote host.  The string `@@MMAASSKK@@' is replaced by  a
  5656.               file filter.  The default setting is:
  5657.  
  5658.                 DDdddd**lliissttEExxeeccCCoommmmaanndd:: \\
  5659.                 ffiillee @@MMAASSKK@@ || ggrreepp ''..**::..**eexxeecc..**'' \\
  5660.                 || ggrreepp --vv  ''..**::..**ssccrriipptt..**'' \\
  5661.                 || ccuutt --dd:: --ff11 || ggrreepp --vv ''..**\\..oo$$''
  5662.  
  5663.  
  5664.        lliissttSSoouurrcceeCCoommmmaanndd ((class lliissttSSoouurrcceeCCoommmmaanndd))
  5665.               The  command to list all source files on the remote
  5666.               host.  The string `@@MMAASSKK@@' is replaced  by  a  file
  5667.               filter.  The default setting is:
  5668.  
  5669.                 DDdddd**lliissttSSoouurrcceeCCoommmmaanndd:: \\
  5670.                 ffiillee @@MMAASSKK@@ || ggrreepp ''..**::..**tteexxtt..**'' \\
  5671.  
  5672.  
  5673.  
  5674. DDD 3.1.1                   1998-12-06                         86
  5675.  
  5676.  
  5677.  
  5678.  
  5679.  
  5680. ddd(1)                                                     ddd(1)
  5681.  
  5682.  
  5683.                 || ccuutt --dd:: --ff11
  5684.  
  5685.  
  5686.        pprriinnttCCoommmmaanndd ((class PPrriinnttCCoommmmaanndd))
  5687.               The  command  to  print a postscript file.  Usually
  5688.               `llpp' or `llpprr'.
  5689.  
  5690.        ppssCCoommmmaanndd ((class PPssCCoommmmaanndd))
  5691.               The command to get a list  of  processes.   Usually
  5692.               `ppss'.   Depending  on your system, useful alternate
  5693.               values include `ppss --eeff' and  `ppss  uuxx'.   The  first
  5694.               line  of  the  output  must  either contain a `PPIIDD'
  5695.               title, or each line must begin with a process ID.
  5696.               Note that the output of this command is filtered by
  5697.               DDD;  a process is only shown if it can be attached
  5698.               to.  The DDD process itself as well as the  process
  5699.               of the inferior debugger are suppressed, too.
  5700.  
  5701.        rrsshhCCoommmmaanndd ((class RRsshhCCoommmmaanndd))
  5702.               The  remote  shell command to invoke TTY-based com-
  5703.               mands on remote hosts.   Usually,  `rreemmsshh',  `rrsshh',
  5704.               `sssshh', or `oonn'.
  5705.  
  5706.        tteerrmmCCoommmmaanndd ((class TTeerrmmCCoommmmaanndd))
  5707.               The  command  to  invoke a separate TTY for showing
  5708.               the input/output of the debugged program.  A Bourne
  5709.               shell  command  to  run  in  the  separate  TTY  is
  5710.               appended to this string.  The  string  `@@FFOONNTT@@'  is
  5711.               replaced  by  the name of the fixed width font used
  5712.               by DDD.  A simple value is
  5713.  
  5714.                 DDdddd**tteerrmmCCoommmmaanndd:: xxtteerrmm --ffnn @@FFOONNTT@@ --ee //bbiinn//sshh --cc
  5715.  
  5716.        tteerrmmTTyyppee ((class TTeerrmmTTyyppee))
  5717.               The terminal type  provided  by  the  `tteerrmmCCoommmmaanndd'
  5718.               resource--that  is,  the value of the TTEERRMM environ-
  5719.               ment variable to be passed to the debugged program.
  5720.               Default: `xxtteerrmm'.
  5721.  
  5722.        uunnccoommpprreessssCCoommmmaanndd ((class UUnnccoommpprreessssCCoommmmaanndd))
  5723.               The  command to uncompress the built-in DDD manual,
  5724.               the DDD license, and the DDD news.   Takes  a  com-
  5725.               pressed  text  from  standard  input and writes the
  5726.               uncompressed text to standard output.  The  default
  5727.               value  is  `ggzziipp  --dd  --cc';  typical  values include
  5728.               `zzccaatt' and `gguunnzziipp --cc'.
  5729.  
  5730.        wwwwwwCCoommmmaanndd ((class WWWWWWCCoommmmaanndd))
  5731.               The command to invoke a WWW  browser.   The  string
  5732.               `@@UURRLL@@' is replaced by the URL to open.  Default is
  5733.               to try a running Netscape first, then  $$WWWWWWBBRROOWWSSEERR,
  5734.               then  to invoke a new Netscape process, then to let
  5735.               a running Emacs do the job, then to invoke  Mosaic,
  5736.               then to invoke Lynx in an xterm.
  5737.  
  5738.  
  5739.  
  5740. DDD 3.1.1                   1998-12-06                         87
  5741.  
  5742.  
  5743.  
  5744.  
  5745.  
  5746. ddd(1)                                                     ddd(1)
  5747.  
  5748.  
  5749.               To  specify `nneettssccaappee--44..00' as browser, use the set-
  5750.               ting:
  5751.  
  5752.                 DDdddd**wwwwwwCCoommmmaanndd:: \\
  5753.                    nneettssccaappee--44..00 --rreemmoottee ''ooppeennUURRLL((@@UURRLL@@))'' \\
  5754.                 |||| nneettssccaappee--44..00 ''@@UURRLL@@''
  5755.  
  5756.               This command first tries to connect  to  a  running
  5757.               nneettssccaappee--44..00  browser;  if  this fails, it starts a
  5758.               new nneettssccaappee--44..00 process.
  5759.  
  5760.        wwwwwwPPaaggee ((class WWWWWWPPaaggee))
  5761.               The DDD WWW page.  Value:
  5762.  
  5763.                 DDdddd**wwwwwwPPaaggee:: hhttttpp::////wwwwww..ccss..ttuu--bbss..ddee//ssoofftteecchh//dddddd//
  5764.  
  5765.  
  5766.    OObbttaaiinniinngg DDiiaaggnnoossttiiccss
  5767.        The following resources are used for debugging DDD and  to
  5768.        obtain specific DDD information.
  5769.  
  5770.        aappppDDeeffaauullttssVVeerrssiioonn ((class VVeerrssiioonn))
  5771.               The  version of the DDD app-defaults file.  If this
  5772.               string does not match the version  of  the  current
  5773.               DDD executable, DDD issues a warning.
  5774.  
  5775.        cchheecckkCCoonnffiigguurraattiioonn ((class CChheecckkCCoonnffiigguurraattiioonn))
  5776.               If  `oonn', check the DDD environment (in particular,
  5777.               the X configuration), report any  possible  problem
  5778.               causes   and   exit.    See   also   the  `----cchheecckk--
  5779.               ccoonnffiigguurraattiioonn' option, below.
  5780.  
  5781.        ddddddiinniittVVeerrssiioonn ((class VVeerrssiioonn))
  5782.               The version of the DDD executable that  last  wrote
  5783.               the  `$$HHOOMMEE//..dddddd//iinniitt'  file.   If this string does
  5784.               not match the  version  of  the  current  DDD  exe-
  5785.               cutable, DDD issues a warning.
  5786.  
  5787.        ddeebbuuggCCoorreeDDuummppss ((class DDeebbuuggCCoorreeDDuummppss))
  5788.               If  `oonn',  DDD  invokes  a  debugger on itself when
  5789.               receiving a fatal signal.
  5790.  
  5791.        dduummppCCoorree ((class DDuummppCCoorree))
  5792.               If `oonn' (default), DDD dumps core when receiving  a
  5793.               fatal signal.
  5794.  
  5795.        mmaaiinntteennaannccee ((class MMaaiinntteennaannccee))
  5796.               If  `oonn',  enables  a  top-level `MMaaiinntteennaannccee' menu
  5797.               with additional options.  See also  the  `----mmaaiinnttee--
  5798.               nnaannccee' option, below.
  5799.  
  5800.        sshhoowwCCoonnffiigguurraattiioonn ((class SShhoowwCCoonnffiigguurraattiioonn))
  5801.               If  `oonn',  show  the  DDD configuration on standard
  5802.               output and exit.  See  also  the  `----ccoonnffiigguurraattiioonn'
  5803.  
  5804.  
  5805.  
  5806. DDD 3.1.1                   1998-12-06                         88
  5807.  
  5808.  
  5809.  
  5810.  
  5811.  
  5812. ddd(1)                                                     ddd(1)
  5813.  
  5814.  
  5815.               option, below.
  5816.  
  5817.        sshhoowwFFoonnttss ((class SShhoowwFFoonnttss))
  5818.               If  `oonn', show the DDD font definitions on standard
  5819.               output and exit.  See also  the  `----ffoonnttss'  option,
  5820.               below.
  5821.  
  5822.        sshhoowwIInnvvooccaattiioonn ((class SShhoowwIInnvvooccaattiioonn))
  5823.               If  `oonn',  show the DDD invocation options on stan-
  5824.               dard  output  and  exit.   See  also  the  `----hheellpp'
  5825.               option, below.
  5826.  
  5827.        sshhoowwLLiicceennssee ((class SShhoowwLLiicceennssee))
  5828.               If  `oonn',  show  the DDD license on standard output
  5829.               and exit.  See also the `----lliicceennssee' option,  below.
  5830.  
  5831.        sshhoowwMMaannuuaall ((class SShhoowwMMaannuuaall))
  5832.               If `oonn', show this DDD manual page on standard out-
  5833.               put and exit.  If the standard output is  a  termi-
  5834.               nal,  the  manual page is shown in a pager ($$PPAAGGEERR,
  5835.               `lleessss' or `mmoorree').  See also the `----mmaannuuaall' option,
  5836.               below.
  5837.  
  5838.        sshhoowwNNeewwss ((class SShhoowwNNeewwss))
  5839.               If  `oonn',  show the DDD news on standard output and
  5840.               exit.  See also the `----nneewwss' option, below.
  5841.  
  5842.        sshhoowwVVeerrssiioonn ((class SShhoowwVVeerrssiioonn))
  5843.               If `oonn', show the DDD version  on  standard  output
  5844.               and  exit.  See also the `----vveerrssiioonn' option, below.
  5845.  
  5846.        ttrraaccee ((class TTrraaccee))
  5847.               If `oonn', show the dialog between DDD and the  infe-
  5848.               rior  debugger  on  standard  output.   Default  is
  5849.               `ooffff'.
  5850.  
  5851.    MMoorree RReessoouurrcceess
  5852.        The `DDdddd' application defaults  file  contains  even  more
  5853.        information  about  setting DDD resources.  The `DDdddd' file
  5854.        comes with the DDD distribution.
  5855.  
  5856. OOPPTTIIOONNSS
  5857.        You can use the following options when starting DDD.   All
  5858.        options  may be abbreviated, as long as they are unambigu-
  5859.        ous; single dashes may also be used.  DDD also understands
  5860.        the usual X options such as `--ddiissppllaayy' or `--ggeeoommeettrryy'; see
  5861.        XX((11)) for details.
  5862.  
  5863.        All other arguments and options are passed to the inferior
  5864.        debugger.  To pass an option to the inferior debugger that
  5865.        conflicts with an X option, or with a  DDD  option  listed
  5866.        here, use the `----ddeebbuuggggeerr' option, below.
  5867.  
  5868.  
  5869.  
  5870.  
  5871.  
  5872. DDD 3.1.1                   1998-12-06                         89
  5873.  
  5874.  
  5875.  
  5876.  
  5877.  
  5878. ddd(1)                                                     ddd(1)
  5879.  
  5880.  
  5881.        ----aattttaacchh--wwiinnddoowwss
  5882.               Attach  the source and data windows to the debugger
  5883.               console, creating one single big DDD window.   This
  5884.               is the default setting.
  5885.  
  5886.        ----aattttaacchh--ssoouurrccee--wwiinnddooww
  5887.               Attaches  only  the  source  window to the debugger
  5888.               console.
  5889.  
  5890.        ----aattttaacchh--ddaattaa--wwiinnddooww
  5891.               Attaches only the source  window  to  the  debugger
  5892.               console.
  5893.  
  5894.        ----aauuttoommaattiicc--ddeebbuuggggeerr
  5895.               Determine the inferior debugger automatically.
  5896.  
  5897.        ----bbuuttttoonn--ttiippss
  5898.               Enable button tips.
  5899.  
  5900.        ----ccoonnffiigguurraattiioonn
  5901.               Show the DDD configuration settings and exit.
  5902.  
  5903.        ----cchheecckk--ccoonnffiigguurraattiioonn
  5904.               Check  the  DDD  environment  (in particular, the X
  5905.               configuration), report any possible problem  causes
  5906.               and exit.
  5907.  
  5908.        ----ddaattaa--wwiinnddooww
  5909.               Create the data window upon start-up.
  5910.  
  5911.        ----ddbbxx  Run the DBX debugger as inferior debugger.
  5912.  
  5913.        ----ddeebbuuggggeerr _n_a_m_e
  5914.               Invoke  the inferior debugger _n_a_m_e.  This is useful
  5915.               if you have several debugger versions around, or if
  5916.               the  inferior  debugger cannot be invoked as `ggddbb',
  5917.               `ddbbxx', `xxddbb',  `jjddbb',  `ppyyddbb',  or  `ppeerrll'  respec-
  5918.               tively.
  5919.               This option can also be used to pass options to the
  5920.               inferior debugger  that  would  otherwise  conflict
  5921.               with DDD options.  For instance, to pass the option
  5922.               `--dd _d_i_r_e_c_t_o_r_y' to XDB, use:
  5923.  
  5924.                 dddddd ----ddeebbuuggggeerr ""xxddbb --dd _d_i_r_e_c_t_o_r_y""
  5925.  
  5926.               If you use the `----ddeebbuuggggeerr' option,  be  sure  that
  5927.               the type of inferior debugger is specified as well.
  5928.               That is, use one of the options  `----ggddbb',  `----ddbbxx',
  5929.               `----xxddbb',  `----jjddbb' `----ppyyddbb', or `----ppeerrll' (unless the
  5930.               default setting works fine).
  5931.  
  5932.        ----ddeebbuuggggeerr--ccoonnssoollee
  5933.               Create the debugger console upon start-up.
  5934.  
  5935.  
  5936.  
  5937.  
  5938. DDD 3.1.1                   1998-12-06                         90
  5939.  
  5940.  
  5941.  
  5942.  
  5943.  
  5944. ddd(1)                                                     ddd(1)
  5945.  
  5946.  
  5947.        ----ddiissaasssseemmbbllee
  5948.               Disassemble the source code.  See also  the  `----nnoo--
  5949.               ddiissaasssseemmbbllee' option, below.
  5950.  
  5951.        ----eexxeecc--wwiinnddooww
  5952.               Run  the  debugged  program  in a specially created
  5953.               execution window.  This is useful for programs that
  5954.               have  special terminal requirements not provided by
  5955.               the debugger window, as raw keyboard processing  or
  5956.               terminal control sequences.
  5957.  
  5958.        ----ffoonnttss
  5959.               Show  the  font definitions used by DDD on standard
  5960.               output.
  5961.  
  5962.        ----ffoonnttssiizzee _s_i_z_e
  5963.               Set the default font size to _s_i_z_e 1/10 points.   To
  5964.               use 12-point fonts, say `----ffoonnttssiizzee 112200'.
  5965.  
  5966.        ----ffuullllnnaammee
  5967.               Enable  TTY  interface,  taking additional debugger
  5968.               commands from standard input and forwarding  debug-
  5969.               ger  output  on standard output.  Current positions
  5970.               are issued in GDB `--ffuullllnnaammee' format  suitable  for
  5971.               debugger front-ends.  By default, both the debugger
  5972.               console and source window are disabled.
  5973.  
  5974.        ----ggddbb  Run the GDB debugger as inferior debugger.
  5975.  
  5976.        ----ggllyypphhss
  5977.               Display the current execution position  and  break-
  5978.               points  as  glyphs.   See  also  the  `----nnoo--ggllyypphhss'
  5979.               option, below.
  5980.  
  5981.        ----hheellpp Give a  list  of  frequently  used  options.   Show
  5982.               options of the inferior debugger as well.
  5983.  
  5984.        ----hhoosstt [_u_s_e_r_n_a_m_e@@]_h_o_s_t_n_a_m_e
  5985.               Invoke the inferior debugger directly on the remote
  5986.               host  _h_o_s_t_n_a_m_e.   If  _u_s_e_r_n_a_m_e  is  given  and  the
  5987.               `----llooggiinn'  option  is  not  used,  use  _u_s_e_r_n_a_m_e as
  5988.               remote user name.  See `RREEMMOOTTEE DDEEBBUUGGGGIINNGG', above.
  5989.  
  5990.        ----jjddbb  Run JDB as inferior debugger.
  5991.  
  5992.        ----lleessssttiiff--hhaacckkss
  5993.               Equivalent to `----lleessssttiiff--vveerrssiioonn 999999'.  Deprecated.
  5994.  
  5995.        ----lleessssttiiff--vveerrssiioonn _v_e_r_s_i_o_n
  5996.               Enable  some  hacks  to  make DDD run properly with
  5997.               LessTif.  See  the  `lleessssTTiiffVVeerrssiioonn'  resource  and
  5998.               `UUSSIINNGG  DDDDDD WWIITTHH LLEESSSSTTIIFF', above, for a discussion.
  5999.  
  6000.  
  6001.  
  6002.  
  6003.  
  6004. DDD 3.1.1                   1998-12-06                         91
  6005.  
  6006.  
  6007.  
  6008.  
  6009.  
  6010. ddd(1)                                                     ddd(1)
  6011.  
  6012.  
  6013.        ----lliicceennssee
  6014.               Show the DDD license and exit.
  6015.  
  6016.        ----llooggiinn _u_s_e_r_n_a_m_e
  6017.               Use _u_s_e_r_n_a_m_e as  remote  user  name.   See  `RREEMMOOTTEE
  6018.               DDEEBBUUGGGGIINNGG', above.
  6019.  
  6020.        ----mmaaiinntteennaannccee
  6021.               Enable   the   top-level  `MMaaiinntteennaannccee'  menu  with
  6022.               options for debugging DDD.
  6023.  
  6024.        ----mmaannuuaall
  6025.               Show this manual page and exit.
  6026.  
  6027.        ----nneewwss Show the DDD news and exit.
  6028.  
  6029.        ----nnoo--bbuuttttoonn--ttiippss
  6030.               Disable button tips.
  6031.  
  6032.        ----nnoo--ddaattaa--wwiinnddooww
  6033.               Do not create the data window upon start-up.
  6034.  
  6035.        ----nnoo--ddeebbuuggggeerr--ccoonnssoollee
  6036.               Do not create the debugger console upon start-up.
  6037.  
  6038.        ----nnoo--ddiissaasssseemmbbllee
  6039.               Do not disassemble the source code.
  6040.  
  6041.        ----nnoo--eexxeecc--wwiinnddooww
  6042.               Do not run the debugged program in a specially cre-
  6043.               ated  execution  window;  use  the debugger console
  6044.               instead.  Useful for programs that have little ter-
  6045.               minal input/output, or for remote debugging.
  6046.  
  6047.        ----nnoo--ggllyypphhss
  6048.               Display  the  current execution position and break-
  6049.               points as text characters.  Do not use glyphs.
  6050.  
  6051.        ----nnoo--lleessssttiiff--hhaacckkss
  6052.               Equivalent  to  `----lleessssttiiff--vveerrssiioonn  11000000'.   Depre-
  6053.               cated.
  6054.  
  6055.        ----nnoo--ssoouurrccee--wwiinnddooww
  6056.               Do not create the source window upon start-up.
  6057.  
  6058.        ----nnoo--vvaalluuee--ttiippss
  6059.               Disable value tips.
  6060.  
  6061.        ----nnww   Do not use the X window interface.  Start the infe-
  6062.               rior debugger on the local host.
  6063.  
  6064.        ----ppeerrll Run Perl as inferior debugger.
  6065.  
  6066.        ----ppyyddbb Run PYDB as inferior debugger.
  6067.  
  6068.  
  6069.  
  6070. DDD 3.1.1                   1998-12-06                         92
  6071.  
  6072.  
  6073.  
  6074.  
  6075.  
  6076. ddd(1)                                                     ddd(1)
  6077.  
  6078.  
  6079.        ----ppaannnneedd--ggrraapphh--eeddiittoorr
  6080.               Use an Athena panner to  scroll  the  data  window.
  6081.               Most  people  prefer  panners on scroll bars, since
  6082.               panners allow two-dimensional scrolling.   However,
  6083.               the  panner  is  off  by  default, since some Motif
  6084.               implementations do not work well with  Athena  wid-
  6085.               gets.  See also ----ssccrroolllleedd--ggrraapphh--eeddiittoorr, below.
  6086.  
  6087.        ----ppllaayy _l_o_g_-_f_i_l_e
  6088.               Recapitulate  a  previous DDD session.  Invoke `ddd
  6089.               ----PPLLAAYY _l_o_g_-_f_i_l_e' as inferior  debugger,  simulating
  6090.               the   inferior  debugger  given  in  _l_o_g_-_f_i_l_e  (see
  6091.               below).  This is useful for debugging DDD.
  6092.  
  6093.        ----PPLLAAYY _l_o_g_-_f_i_l_e
  6094.               Simulate  an  inferior  debugger.   _l_o_g_-_f_i_l_e  is  a
  6095.               `$$HHOOMMEE//..dddddd//lloogg' file as generated by some previous
  6096.               DDD session.  When a command is entered,  scan  the
  6097.               _l_o_g_-_f_i_l_e  for  this command and re-issue the logged
  6098.               reply; if the command is  not  found,  do  nothing.
  6099.               This is used by the `----ppllaayy' option.
  6100.  
  6101.        ----rrhhoosstt [_u_s_e_r_n_a_m_e@@]_h_o_s_t_n_a_m_e
  6102.               Run  the  inferior  debugger  interactively  on the
  6103.               remote host _h_o_s_t_n_a_m_e.  If _u_s_e_r_n_a_m_e is given and the
  6104.               `----llooggiinn'  option  is  not  used,  use  _u_s_e_r_n_a_m_e as
  6105.               remote user name.  See `RREEMMOOTTEE DDEEBBUUGGGGIINNGG', above.
  6106.  
  6107.        ----sseeppaarraattee--wwiinnddoowwss
  6108.               Separate the console, source and data windows.  See
  6109.               also the `----aattttaacchh' options, above.
  6110.  
  6111.        ----ssccrroolllleedd--ggrraapphh--eeddiittoorr
  6112.               Use  Motif  scroll  bars to scroll the data window.
  6113.               This is the default  in  most  DDD  configurations.
  6114.               See also ----ppaannnneedd--ggrraapphh--eeddiittoorr, above.
  6115.  
  6116.        ----ssoouurrccee--wwiinnddooww
  6117.               Create the source window upon start-up.
  6118.  
  6119.        ----ssttaattuuss--aatt--bboottttoomm
  6120.               Place  the  status line at the bottom of the source
  6121.               window.
  6122.  
  6123.        ----ssttaattuuss--aatt--ttoopp
  6124.               Place the status line at the top of the source win-
  6125.               dow.
  6126.  
  6127.        ----ssyynncc--ddeebbuuggggeerr
  6128.               Do not process X events while the debugger is busy.
  6129.               This may result in slightly better  performance  on
  6130.               single-processor systems.
  6131.  
  6132.  
  6133.  
  6134.  
  6135.  
  6136. DDD 3.1.1                   1998-12-06                         93
  6137.  
  6138.  
  6139.  
  6140.  
  6141.  
  6142. ddd(1)                                                     ddd(1)
  6143.  
  6144.  
  6145.        ----ttoooollbbaarrss--aatt--bboottttoomm
  6146.               Place the toolbars the bottom of the window.
  6147.  
  6148.        ----ttoooollbbaarrss--aatt--ttoopp
  6149.               Place the toolbars at the top of the window.
  6150.  
  6151.        ----ttrraaccee
  6152.               Show  the  interaction between DDD and the inferior
  6153.               debugger on standard error.   This  is  useful  for
  6154.               debugging DDD.  If `----ttrraaccee' is not specified, this
  6155.               information is written into `$$HHOOMMEE//..dddddd//lloogg',  such
  6156.               that you can also do a post-mortem debugging.
  6157.  
  6158.        ----ttttyy  Enable  TTY  interface,  taking additional debugger
  6159.               commands from standard input and forwarding  debug-
  6160.               ger  output  on standard output.  Current positions
  6161.               are issued in a format  readable  for  humans.   By
  6162.               default, the debugger console is disabled.
  6163.  
  6164.        ----vvaalluuee--ttiippss
  6165.               Enable value tips.
  6166.  
  6167.        ----vveerrssiioonn
  6168.               Show the DDD version and exit.
  6169.  
  6170.        ----vvssll--lliibbrraarryy _l_i_b_r_a_r_y
  6171.               Load  the  VSL library _l_i_b_r_a_r_y instead of using the
  6172.               DDD built-in library.  This is useful for customiz-
  6173.               ing display shapes and fonts.
  6174.  
  6175.        ----vvssll--ppaatthh _p_a_t_h
  6176.               Search  VSL  libraries  in  _p_a_t_h (a colon-separated
  6177.               directory list).
  6178.  
  6179.        ----vvssll--hheellpp
  6180.               Show a list of further options controlling the  VSL
  6181.               interpreter.  These options are intended for debug-
  6182.               ging purposes and are  subject  to  change  without
  6183.               further notice.
  6184.  
  6185.        ----xxddbb  Run XDB as inferior debugger.
  6186.  
  6187. AACCTTIIOONNSS
  6188.        The  following  DDD  actions  may  be  used in translation
  6189.        tables.
  6190.  
  6191.    GGeenneerraall AAccttiioonnss
  6192.        These actions are used to assign the keyboard focus.
  6193.  
  6194.        dddddd--ggeett--ffooccuuss (())
  6195.               Assign focus to  the  element  that  just  received
  6196.               input.
  6197.  
  6198.  
  6199.  
  6200.  
  6201.  
  6202. DDD 3.1.1                   1998-12-06                         94
  6203.  
  6204.  
  6205.  
  6206.  
  6207.  
  6208. ddd(1)                                                     ddd(1)
  6209.  
  6210.  
  6211.        dddddd--nneexxtt--ttaabb--ggrroouupp (())
  6212.               Assign focus to the next tab group.
  6213.  
  6214.        dddddd--pprreevv--ttaabb--ggrroouupp (())
  6215.               Assign focus to the previous tab group.
  6216.  
  6217.        dddddd--pprreevviioouuss--ttaabb--ggrroouupp (())
  6218.               Assign focus to the previous tab group.
  6219.  
  6220.    DDaattaa DDiissppllaayy AAccttiioonnss
  6221.        These actions are used in the DDD graph editor.
  6222.  
  6223.        eenndd (()) End  the  action  initiated  by sseelleecctt.  Bound to a
  6224.               button up event.
  6225.  
  6226.        eexxtteenndd (())
  6227.               Extend the current selection.  Bound  to  a  button
  6228.               down event.
  6229.  
  6230.        eexxtteenndd--oorr--mmoovvee (())
  6231.               Extend  the  current  selection.  Bound to a button
  6232.               down event.  If the pointer is  dragged,  move  the
  6233.               selection.
  6234.  
  6235.        ffoollllooww (())
  6236.               Continue  the action initiated by sseelleecctt.  Bound to
  6237.               a pointer motion event.
  6238.  
  6239.        ggrraapphh--sseelleecctt (())
  6240.               Equivalent to sseelleecctt, but also updates the  current
  6241.               argument.
  6242.  
  6243.        ggrraapphh--sseelleecctt--oorr--mmoovvee (())
  6244.               Equivalent  to sseelleecctt--oorr--mmoovvee, but also updates the
  6245.               current argument.
  6246.  
  6247.        ggrraapphh--eexxtteenndd (())
  6248.               Equivalent to eexxtteenndd, but also updates the  current
  6249.               argument.
  6250.  
  6251.        ggrraapphh--eexxtteenndd--oorr--mmoovvee (())
  6252.               Equivalent  to eexxtteenndd--oorr--mmoovvee, but also updates the
  6253.               current argument.
  6254.  
  6255.        ggrraapphh--ttooggggllee (())
  6256.               Equivalent to ttooggggllee, but also updates the  current
  6257.               argument.
  6258.  
  6259.        ggrraapphh--ttooggggllee--oorr--mmoovvee (())
  6260.               Equivalent  to ttooggggllee--oorr--mmoovvee, but also updates the
  6261.               current argument.
  6262.  
  6263.        ggrraapphh--ppooppuupp--mmeennuu (([ggrraapphh|nnooddee|sshhoorrttccuutt]))
  6264.               Pops up a menu.  ggrraapphh pops up a menu  with  global
  6265.  
  6266.  
  6267.  
  6268. DDD 3.1.1                   1998-12-06                         95
  6269.  
  6270.  
  6271.  
  6272.  
  6273.  
  6274. ddd(1)                                                     ddd(1)
  6275.  
  6276.  
  6277.               graph  operations,  nnooddee  pops  up a menu with node
  6278.               operations, and sshhoorrttccuutt pops up a menu  with  dis-
  6279.               play shortcuts.  If no argument is given, pops up a
  6280.               menu depending on the context: when pointing  on  a
  6281.               node  with  the  SShhiifftt  key  pressed,  behaves like
  6282.               sshhoorrttccuutt; when pointing on a without the SShhiifftt  key
  6283.               pressed,  behaves  like nnooddee; otherwise, behaves as
  6284.               if ggrraapphh was given.
  6285.  
  6286.        ggrraapphh--ddeerreeffeerreennccee (())
  6287.               Dereference the selected display.
  6288.  
  6289.        ggrraapphh--ddeettaaiill (())
  6290.               Show or hide detail of the selected display.
  6291.  
  6292.        ggrraapphh--rroottaattee (())
  6293.               Rotate the selected display.
  6294.  
  6295.        ggrraapphh--ddeeppeennddeenntt (())
  6296.               Pop up a dialog to create a dependent display.
  6297.  
  6298.        hhiiddee--eeddggeess (([aannyy|bbootthh|ffrroomm|ttoo]))
  6299.               Hide some edges.  aannyy means to  process  all  edges
  6300.               where  either  source  or target node are selected.
  6301.               bbootthh means to process all edges  where  both  nodes
  6302.               are selected. ffrroomm means to process all edges where
  6303.               at least the source node is selected. ttoo  means  to
  6304.               process all edges where at least the target node is
  6305.               selected.  Default is aannyy.
  6306.  
  6307.        llaayyoouutt (([rreegguullaarr|ccoommppaacctt],, [[++|--]_d_e_g_r_e_e_s]]))
  6308.               Layout the graph.  rreegguullaarr means to use the regular
  6309.               layout  algorithm; ccoommppaacctt uses an alternate layout
  6310.               algorithm, where  successors  are  placed  next  to
  6311.               their  parents.  Default is rreegguullaarr.  _d_e_g_r_e_e_s indi-
  6312.               cates in which direction the graph should  be  lay-
  6313.               outed.  Default is the current graph direction.
  6314.  
  6315.        mmoovvee--sseelleecctteedd ((_x_-_o_f_f_s_e_t,, _y_-_o_f_f_s_e_t))
  6316.               Move  all  selected nodes in the direction given by
  6317.               _x_-_o_f_f_s_e_t and _y_-_o_f_f_s_e_t.  _x_-_o_f_f_s_e_t  and  _y_-_o_f_f_s_e_t  is
  6318.               either  given  as  a  numeric  pixel  value,  or as
  6319.               `++ggrriidd', or `--ggrriidd', meaning the current grid size.
  6320.  
  6321.        nnoorrmmaalliizzee (())
  6322.               Place  all  nodes on their positions and redraw the
  6323.               graph.
  6324.  
  6325.        rroottaattee (([[++|--]_d_e_g_r_e_e_s]))
  6326.               Rotate the graph around _d_e_g_r_e_e_s  degrees.   _d_e_g_r_e_e_s
  6327.               must be a multiple of 90.  Default is ++9900.
  6328.  
  6329.        sseelleecctt (())
  6330.               Select  the  node  pointed  at.   Clear  all  other
  6331.  
  6332.  
  6333.  
  6334. DDD 3.1.1                   1998-12-06                         96
  6335.  
  6336.  
  6337.  
  6338.  
  6339.  
  6340. ddd(1)                                                     ddd(1)
  6341.  
  6342.  
  6343.               selections.  Bound to a button down event.
  6344.  
  6345.        sseelleecctt--aallll (())
  6346.               Select all nodes in the graph.
  6347.  
  6348.        sseelleecctt--ffiirrsstt (())
  6349.               Select the first node in the graph.
  6350.  
  6351.        sseelleecctt--nneexxtt (())
  6352.               Select the next node in the graph.
  6353.  
  6354.        sseelleecctt--oorr--mmoovvee (())
  6355.               Select the node pointed at.  Clear all other selec-
  6356.               tions.   Bound  to  a  button  down  event.  If the
  6357.               pointer is dragged, move the selected node.
  6358.  
  6359.        sseelleecctt--pprreevv (())
  6360.               Select the previous node in the graph.
  6361.  
  6362.        sshhooww--eeddggeess (([aannyy|bbootthh|ffrroomm|ttoo]))
  6363.               Show some edges.  aannyy means to  process  all  edges
  6364.               where  either  source  or target node are selected.
  6365.               bbootthh means to process all edges  where  both  nodes
  6366.               are selected. ffrroomm means to process all edges where
  6367.               at least the source node is selected. ttoo  means  to
  6368.               process all edges where at least the target node is
  6369.               selected.  Default is aannyy.
  6370.  
  6371.        ssnnaapp--ttoo--ggrriidd (())
  6372.               Place all nodes on the nearest grid position.
  6373.  
  6374.        ttooggggllee (())
  6375.               Toggle the current selection--if the  node  pointed
  6376.               at  is  selected,  it  will be unselected, and vice
  6377.               versa.  Bound to a button down event.
  6378.  
  6379.        ttooggggllee--oorr--mmoovvee (())
  6380.               Toggle the current selection--if the  node  pointed
  6381.               at  is  selected,  it  will be unselected, and vice
  6382.               versa.  Bound to  a  button  down  event.   If  the
  6383.               pointer is dragged, move the selection.
  6384.  
  6385.        uunnsseelleecctt--aallll (())
  6386.               Clear the selection.
  6387.  
  6388.    DDeebbuuggggeerr CCoonnssoollee AAccttiioonnss
  6389.        These  actions  are used in the debugger console and other
  6390.        text fields.
  6391.  
  6392.        ggddbb--bbaacckkwwaarrdd--cchhaarraacctteerr (())
  6393.               Move one character to the left.  Bound to LLeefftt.
  6394.  
  6395.        ggddbb--bbeeggiinnnniinngg--ooff--lliinnee (())
  6396.               Move cursor to the beginning of the  current  line,
  6397.  
  6398.  
  6399.  
  6400. DDD 3.1.1                   1998-12-06                         97
  6401.  
  6402.  
  6403.  
  6404.  
  6405.  
  6406. ddd(1)                                                     ddd(1)
  6407.  
  6408.  
  6409.               after the prompt.  Bound to HHOOMMEE.
  6410.  
  6411.        ggddbb--ccoonnttrrooll ((_c_o_n_t_r_o_l_-_c_h_a_r_a_c_t_e_r))
  6412.               Send  the  given  _c_o_n_t_r_o_l_-_c_h_a_r_a_c_t_e_r to the inferior
  6413.               debugger.  The _c_o_n_t_r_o_l_-_c_h_a_r_a_c_t_e_r must be  specified
  6414.               in  the  form `^^_X', where _X is an upper-case letter
  6415.               or `??'.
  6416.  
  6417.        ggddbb--ccoommmmaanndd ((_c_o_m_m_a_n_d))
  6418.               Execute _c_o_m_m_a_n_d in the debugger console.  The  fol-
  6419.               lowing replacements are performed on _c_o_m_m_a_n_d:
  6420.  
  6421.               +o If  _c_o_m_m_a_n_d  has the form '_n_a_m_e......', insert _n_a_m_e,
  6422.                 followed by a space, in the debugger console.
  6423.  
  6424.               +o All occurrences of `(())' are replaced by the  cur-
  6425.                 rent contents of the argument field `(())'.
  6426.  
  6427.        ggddbb--ccoommpplleettee--aarrgg ((_c_o_m_m_a_n_d))
  6428.               Complete   current   argument  as  if  _c_o_m_m_a_n_d  was
  6429.               prepended.  Bound to CCttrrll++TT.
  6430.  
  6431.        ggddbb--ccoommpplleettee--ccoommmmaanndd (())
  6432.               Complete current command line in the debugger  con-
  6433.               sole.  Bound to TTAABB.
  6434.  
  6435.        ggddbb--ccoommpplleettee--ttaabb ((_c_o_m_m_a_n_d))
  6436.               If  global TTAABB completion is enabled, complete cur-
  6437.               rent argument as if _c_o_m_m_a_n_d was prepended.   Other-
  6438.               wise,  proceed as if the TTAABB key was hit.  Bound to
  6439.               TTAABB.
  6440.  
  6441.        ggddbb--ddeelleettee--oorr--ccoonnttrrooll ((_c_o_n_t_r_o_l_-_c_h_a_r_a_c_t_e_r))
  6442.               Like ggddbb--ccoonnttrrooll, but effective only if the  cursor
  6443.               is  at  the  end  of  a  line.  Otherwise, _c_o_n_t_r_o_l_-
  6444.               _c_h_a_r_a_c_t_e_r is ignored and  the  character  following
  6445.               the cursor is deleted.  Bound to CCttrrll++DD.
  6446.  
  6447.        ggddbb--eenndd--ooff--lliinnee (())
  6448.               Move  cursor to the end of the current line.  Bound
  6449.               to EEnndd.
  6450.  
  6451.        ggddbb--ffoorrwwaarrdd--cchhaarraacctteerr (())
  6452.               Move one character to the right.  Bound to RRiigghhtt.
  6453.  
  6454.        ggddbb--iinnsseerrtt--ggrraapphh--aarrgg (())
  6455.               Insert the contents of the  data  display  argument
  6456.               field `(())'.
  6457.  
  6458.        ggddbb--iinnsseerrtt--ssoouurrccee--aarrgg (())
  6459.               Insert  the  contents  of the source argument field
  6460.               `(())'.
  6461.  
  6462.  
  6463.  
  6464.  
  6465.  
  6466. DDD 3.1.1                   1998-12-06                         98
  6467.  
  6468.  
  6469.  
  6470.  
  6471.  
  6472. ddd(1)                                                     ddd(1)
  6473.  
  6474.  
  6475.        ggddbb--iinntteerrrruupptt (())
  6476.               If DDD is in incremental search mode, exit it; oth-
  6477.               erwise call ggddbb--ccoonnttrrooll((^^CC)).
  6478.  
  6479.        ggddbb--iisseeaarrcchh--pprreevv (())
  6480.               Enter  reverse  incremental  search mode.  Bound to
  6481.               CCttrrll++BB.
  6482.  
  6483.        ggddbb--iisseeaarrcchh--nneexxtt (())
  6484.               Enter incremental search mode.  Bound to CCttrrll++FF.
  6485.  
  6486.        ggddbb--iisseeaarrcchh--eexxiitt (())
  6487.               Exit incremental search mode.  Bound to EESSCC.
  6488.  
  6489.        ggddbb--nneexxtt--hhiissttoorryy (())
  6490.               Recall next command from history.  Bound to DDoowwnn.
  6491.  
  6492.        ggddbb--pprreevv--hhiissttoorryy (())
  6493.               Recall previous command from history.  Bound to UUpp.
  6494.  
  6495.        ggddbb--pprreevviioouuss--hhiissttoorryy (())
  6496.               Recall previous command from history.  Bound to UUpp.
  6497.  
  6498.        ggddbb--pprroocceessss (([[_a_c_t_i_o_n[[,, _a_r_g_s_._._.]]]]))
  6499.               Process the given event in  the  debugger  console.
  6500.               Bound  to key events in the source and data window.
  6501.               If this action is bound to the source  window,  and
  6502.               the    source    window    is   editable,   perform
  6503.               _a_c_t_i_o_n((_a_r_g_s_._._.)) on the source  window  instead;  if
  6504.               _a_c_t_i_o_n is not given, perform `sseellff--iinnsseerrtt(())'.
  6505.  
  6506.        ggddbb--sseelleecctt--aallll (())
  6507.               If  the  `sseelleeccttAAllllBBiinnddiinnggss'  resource  is  set  to
  6508.               MMoottiiff, perform _b_e_g_i_n_n_i_n_g_-_o_f_-_l_i_n_e.  Otherwise,  per-
  6509.               form _s_e_l_e_c_t_-_a_l_l.  Bound to CCttrrll++AA.
  6510.  
  6511.        ggddbb--sseett--lliinnee ((_v_a_l_u_e))
  6512.               Set the current line to _v_a_l_u_e.  Bound to CCttrrll++UU.
  6513.  
  6514.    SSoouurrccee WWiinnddooww AAccttiioonnss
  6515.        These actions are used in the source and code windows.
  6516.  
  6517.        ssoouurrccee--ddeelleettee--ggllyypphh (())
  6518.               Delete  the breakpoint related to the glyph at cur-
  6519.               sor position.
  6520.  
  6521.        ssoouurrccee--ddoouubbllee--cclliicckk   (([[_t_e_x_t_-_a_c_t_i_o_n   [,_l_i_n_e_-_a_c_t_i_o_n
  6522.               [,_f_u_n_c_t_i_o_n_- _a_c_t_i_o_n]]]))
  6523.               The double-click action in the source window.
  6524.  
  6525.               +o If this action is taken on  a  breakpoint  glyph,
  6526.                 edit the breakpoint properties.
  6527.  
  6528.               +o If  this  action is taken in the breakpoint area,
  6529.  
  6530.  
  6531.  
  6532. DDD 3.1.1                   1998-12-06                         99
  6533.  
  6534.  
  6535.  
  6536.  
  6537.  
  6538. ddd(1)                                                     ddd(1)
  6539.  
  6540.  
  6541.                 invoke  `ggddbb--ccoommmmaanndd((_l_i_n_e_-_a_c_t_i_o_n))'.    If   _l_i_n_e_-
  6542.                 _a_c_t_i_o_n is not given, it defaults to `bbrreeaakk (())'.
  6543.  
  6544.               +o If  this  action is taken in the source text, and
  6545.                 the next character following the  current  selec-
  6546.                 tion  is  a  `((',  invoke  `ggddbb--ccoommmmaanndd((_f_u_n_c_t_i_o_n_-
  6547.                 _a_c_t_i_o_n))'.  If _f_u_n_c_t_i_o_n_-_a_c_t_i_o_n is  not  given,  it
  6548.                 defaults to `lliisstt (())'.
  6549.  
  6550.               +o Otherwise, invoke `ggddbb--ccoommmmaanndd((_t_e_x_t_-_a_c_t_i_o_n))'.  If
  6551.                 _t_e_x_t_-_a_c_t_i_o_n is not given, it defaults  to  `ggrraapphh
  6552.                 ddiissppllaayy (())'.
  6553.  
  6554.        ssoouurrccee--ddrraagg--ggllyypphh (())
  6555.               Initiate a drag on the glyph at cursor position.
  6556.  
  6557.        ssoouurrccee--ddrroopp--ggllyypphh (([[_a_c_t_i_o_n])
  6558.               Drop  the dragged glyph at cursor position.  _a_c_t_i_o_n
  6559.               is either  `mmoovvee',  meaning  to  move  the  dragged
  6560.               glyph,  or  `ccooppyy',  meaning  to  copy  the dragged
  6561.               glyph.  If no _a_c_t_i_o_n is given, `mmoovvee' is assumed.
  6562.  
  6563.        ssoouurrccee--eenndd--sseelleecctt--wwoorrdd (())
  6564.               End selecting a word.
  6565.  
  6566.        ssoouurrccee--ffoollllooww--ggllyypphh (())
  6567.               Continue a drag on the glyph  at  cursor  position.
  6568.               Usually bound to some motion event.
  6569.  
  6570.        ssoouurrccee--ppooppuupp--mmeennuu (())
  6571.               Pop up a menu, depending on the location.
  6572.  
  6573.        ssoouurrccee--sseett--aarrgg (())
  6574.               Set  the  argument  field to the current selection.
  6575.               Typically bound to some selection operation.
  6576.  
  6577.        ssoouurrccee--ssttaarrtt--sseelleecctt--wwoorrdd (())
  6578.               Start selecting a word.
  6579.  
  6580.        ssoouurrccee--uuppddaattee--ggllyypphhss (())
  6581.               Update all visible glyphs.  Usually invoked after a
  6582.               scrolling operation.
  6583.  
  6584. IIMMAAGGEESS
  6585.        DDD installs a number of images that may be used as pixmap
  6586.        resources, simply by giving a symbolic name.   For  button
  6587.        images, three variants are installed as well:
  6588.  
  6589.        +o The suffix `--hhii' indicates a highlighted variant (Button
  6590.          is entered).
  6591.  
  6592.        +o The suffix `--aarrmm' indicates an armed variant (Button  is
  6593.          pushed).
  6594.  
  6595.  
  6596.  
  6597.  
  6598. DDD 3.1.1                   1998-12-06                        100
  6599.  
  6600.  
  6601.  
  6602.  
  6603.  
  6604. ddd(1)                                                     ddd(1)
  6605.  
  6606.  
  6607.        +o The  suffix  `--xxxx'  indicates  a  disabled (insensitive)
  6608.          variant.
  6609.  
  6610.        bbrreeaakk__aatt
  6611.          `BBrreeaakk aatt (())' button.
  6612.  
  6613.        cclleeaarr__aatt
  6614.          `CClleeaarr aatt (())' button.
  6615.  
  6616.        dddddd
  6617.          DDD icon.
  6618.  
  6619.        ddeelleettee
  6620.          `DDeelleettee (())' button.
  6621.  
  6622.        ddiissaabbllee
  6623.          `DDiissaabbllee' button.
  6624.  
  6625.        ddiisspprreeff
  6626.          `DDiissppllaayy ** (())' button.
  6627.  
  6628.        ddiissppllaayy
  6629.          `DDiissppllaayy (())' button.
  6630.  
  6631.        ddrraagg__aarrrrooww
  6632.          The execution pointer (being dragged).
  6633.  
  6634.        ddrraagg__ccoonndd
  6635.          A conditional breakpoint (being dragged).
  6636.  
  6637.        ddrraagg__ssttoopp
  6638.          A breakpoint (being dragged).
  6639.  
  6640.        ddrraagg__tteemmpp
  6641.          A temporary breakpoint (being dragged).
  6642.  
  6643.        eennaabbllee
  6644.          `EEnnaabbllee' button.
  6645.  
  6646.        ffiinndd__ffoorrwwaarrdd
  6647.          `FFiinndd>>>> (())' button.
  6648.  
  6649.        ffiinndd__bbaacckkwwaarrdd
  6650.          `FFiinndd<<<< (())' button.
  6651.  
  6652.        ggrreeyy__aarrrrooww
  6653.          The execution pointer (not in lowest frame).
  6654.  
  6655.        ggrreeyy__ccoonndd
  6656.          A conditional breakpoint (disabled).
  6657.  
  6658.        ggrreeyy__ssttoopp
  6659.          A breakpoint (disabled).
  6660.  
  6661.  
  6662.  
  6663.  
  6664. DDD 3.1.1                   1998-12-06                        101
  6665.  
  6666.  
  6667.  
  6668.  
  6669.  
  6670. ddd(1)                                                     ddd(1)
  6671.  
  6672.  
  6673.        ggrreeyy__tteemmpp
  6674.          A temporary breakpoint (disabled).
  6675.  
  6676.        hhiiddee
  6677.          `HHiiddee (())' button.
  6678.  
  6679.        llooookkuupp
  6680.          `LLooookkuupp (())' button.
  6681.  
  6682.        mmaakkeetteemmpp
  6683.          `MMaakkee TTeemmppoorraarryy' button.
  6684.  
  6685.        nneeww__bbrreeaakk
  6686.          `NNeeww BBrreeaakkppooiinntt' button.
  6687.  
  6688.        nneeww__ddiissppllaayy
  6689.          `NNeeww DDiissppllaayy' button.
  6690.  
  6691.        nneeww__wwaattcchh
  6692.          `NNeeww WWaattcchhppooiinntt' button.
  6693.  
  6694.        ppllaaiinn__aarrrrooww
  6695.          The execution pointer.
  6696.  
  6697.        ppllaaiinn__ccoonndd
  6698.          A conditional breakpoint (enabled).
  6699.  
  6700.        ppllaaiinn__ssttoopp
  6701.          A breakpoint (enabled).
  6702.  
  6703.        ppllaaiinn__tteemmpp
  6704.          A temporary breakpoint (enabled).
  6705.  
  6706.        pprriinntt
  6707.          `PPrriinntt (())' button.
  6708.  
  6709.        pprrooppeerrttiieess
  6710.          `PPrrooppeerrttiieess' button.
  6711.  
  6712.        rroottaattee
  6713.          `RRoottaattee (())' button.
  6714.  
  6715.        sseett
  6716.          `SSeett (())' button.
  6717.  
  6718.        sshhooww
  6719.          `SShhooww (())' button.
  6720.  
  6721.        ssiiggnnaall__aarrrrooww
  6722.          The execution pointer (stopped by signal).
  6723.  
  6724.        uunnddiissppllaayy
  6725.          `UUnnddiissppllaayy (())' button.
  6726.  
  6727.  
  6728.  
  6729.  
  6730. DDD 3.1.1                   1998-12-06                        102
  6731.  
  6732.  
  6733.  
  6734.  
  6735.  
  6736. ddd(1)                                                     ddd(1)
  6737.  
  6738.  
  6739.        uunnwwaattcchh
  6740.          `UUnnwwaattcchh (())' button.
  6741.  
  6742.        wwaattcchh
  6743.          `WWaattcchh (())' button.
  6744.  
  6745.  
  6746. EENNVVIIRROONNMMEENNTT
  6747.        DDD is controlled by the following environment variables:
  6748.  
  6749.  
  6750.        DDDDDD__NNOO__SSIIGGNNAALL__HHAANNDDLLEERRSS
  6751.                            If  set,  DDD  does  not  catch  fatal
  6752.                            errors.  This is sometimes useful when
  6753.                            debugging DDD.
  6754.  
  6755.        DDDDDD__SSTTAATTEE           Root of DDD state directory.   Default
  6756.                            is `$$HHOOMMEE//..dddddd//'.
  6757.  
  6758.        DDDDDD__SSEESSSSIIOONN         If  set, indicates a session to start,
  6759.                            overriding all options.  This is  used
  6760.                            by DDD when restarting itself.
  6761.  
  6762.        DDDDDD__SSEESSSSIIOONNSS        DDD  session  directory.   Default  is
  6763.                            `$$DDDDDD__SSTTAATTEE//sseessssiioonnss//'.
  6764.  
  6765.        EEDDIITTOORR              The text editor to invoke for  editing
  6766.                            source  code.   See  the `eeddiittCCoommmmaanndd'
  6767.                            resource, above.
  6768.  
  6769.        VVSSLL__IINNCCLLUUDDEE         Where to search for VSL include files.
  6770.                            Default is the current directory.
  6771.  
  6772.        WWWWWWBBRROOWWSSEERR          The  WWW browser to invoke for viewing
  6773.                            the DDD WWW page.   See  the  `wwwwwwCCoomm--
  6774.                            mmaanndd' resource, above.
  6775.  
  6776.        XXEEDDIITTOORR             The  X  editor  to  invoke for editing
  6777.                            source code.   See  the  `eeddiittCCoommmmaanndd'
  6778.                            resource, above.
  6779.  
  6780.        The following environment variables are set by DDD:
  6781.  
  6782.  
  6783.        DDDDDD                 Set  to  a  string  indicating the DDD
  6784.                            version.  By testing  whether  DDDDDD  is
  6785.                            set, a debuggee (or inferior debugger)
  6786.                            can determine whether it  was  invoked
  6787.                            by DDD.
  6788.  
  6789.        TTEERRMM                Set  to `dduummbb', the DDD terminal type.
  6790.                            This is set for the inferior  debugger
  6791.                            only.  If the debuggee runs in a sepa-
  6792.                            rate execution window, the  debuggee's
  6793.  
  6794.  
  6795.  
  6796. DDD 3.1.1                   1998-12-06                        103
  6797.  
  6798.  
  6799.  
  6800.  
  6801.  
  6802. ddd(1)                                                     ddd(1)
  6803.  
  6804.  
  6805.                            TTEERRMM  value  is  set  according to the
  6806.                            `tteerrmmTTyyppee' resource (see  `RREESSOOUURRCCEESS',
  6807.                            above).
  6808.  
  6809.        TTEERRMMCCAAPP             Set  to  `'  (none),  the DDD terminal
  6810.                            capabilities.
  6811.  
  6812.        PPAAGGEERR               Set to `ccaatt', the preferred DDD pager.
  6813.  
  6814. FFIILLEESS
  6815.        $$HHOOMMEE//..dddddd//         DDD state directory.
  6816.        $$HHOOMMEE//..dddddd//iinniitt     Individual  DDD  resource  file.   DDD
  6817.                            options are saved here.
  6818.        $$HHOOMMEE//..dddddd//hhiissttoorryy  Default DDD command history file.
  6819.        $$HHOOMMEE//..dddddd//lloocckk     DDD lock file; indicates that a DDD is
  6820.                            running.
  6821.        $$HHOOMMEE//..dddddd//lloogg      Trace   of   the  current  interaction
  6822.                            between DDD and the inferior debugger.
  6823.        $$HHOOMMEE//..dddddd//sseessssiioonnss//
  6824.                            DDD  session directory.  One subdirec-
  6825.                            tory per session.
  6826.        $$HHOOMMEE//..dddddd//sseessssiioonnss//_s_e_s_s_i_o_n//ddddddccoorree
  6827.                            DDD core file for _s_e_s_s_i_o_n.
  6828.        $$HHOOMMEE//..dddddd//sseessssiioonnss//_s_e_s_s_i_o_n//iinniitt
  6829.                            DDD resource file for _s_e_s_s_i_o_n.
  6830.        $$HHOOMMEE//..dddddd//sseessssiioonnss//_s_e_s_s_i_o_n//hhiissttoorryy
  6831.                            DDD command history for _s_e_s_s_i_o_n.
  6832.        $$HHOOMMEE//..dddddd//sseessssiioonnss//..dddddd//
  6833.                            The DDD `restart' session.
  6834.        $$HHOOMMEE//..dddddd//ttiippss     DDD tips resource file.  Contains  the
  6835.                            number of the next tip of the day.
  6836.        $$HHOOMMEE//..ggddbbiinniitt      GDB initialization file.
  6837.        $$HHOOMMEE//..ddbbxxiinniitt      DBX initialization file.
  6838.        $$HHOOMMEE//..ddbbxxrrcc        Alternate DBX initialization file.
  6839.        $$HHOOMMEE//..xxddbbrrcc        XDB initialization file.
  6840.        $$HHOOMMEE//..ggnnuupplloott      Gnuplot initialization file.
  6841.        $$HHOOMMEE//..ddddddiinniitt      Old-style   DDD  initialization  file;
  6842.                            used only if $$HHOOMMEE//..dddddd//iinniitt does  not
  6843.                            exist.
  6844.  
  6845. SSEEEE AALLSSOO
  6846.        XX(1),  ggddbb(1),  ddbbxx(1),  xxddbb(1),  ppeerrllddeebbuugg(1),  rreemmsshh(1),
  6847.        rrsshh(1), ggnnuupplloott(1),
  6848.  
  6849.        `ggddbb' entry in iinnffoo.
  6850.  
  6851.        _U_s_i_n_g _G_D_B_: _A _G_u_i_d_e _t_o _t_h_e _G_N_U  _S_o_u_r_c_e_-_L_e_v_e_l  _D_e_b_u_g_g_e_r,  by
  6852.        Richard M. Stallman and Roland H. Pesch.
  6853.  
  6854.        _j_d_b_-_-_T_h_e  _J_a_v_a  _D_e_b_u_g_g_e_r, at hhttttpp::////jjaavvaa..ssuunn..ccoomm// (and its
  6855.        mirrors)                     in                     //pprroodd--
  6856.        uuccttss//jjddkk//11..11//ddooccss//ttoooollddooccss//ssoollaarriiss//jjddbb..hhttmmll
  6857.  
  6858.        _J_a_v_a  _L_a_n_g_u_a_g_e _D_e_b_u_g_g_i_n_g, at hhttttpp::////jjaavvaa..ssuunn..ccoomm// (and its
  6859.  
  6860.  
  6861.  
  6862. DDD 3.1.1                   1998-12-06                        104
  6863.  
  6864.  
  6865.  
  6866.  
  6867.  
  6868. ddd(1)                                                     ddd(1)
  6869.  
  6870.  
  6871.        mirrors) in //pprroodduuccttss//jjddkk//11..11//ddeebbuuggggiinngg//
  6872.  
  6873.        _T_h_e _P_y_t_h_o_n _L_a_n_g_u_a_g_e,  at  hhttttpp::////wwwwww..ppyytthhoonn..oorrgg//  and  its
  6874.        mirrors.
  6875.  
  6876.        _D_D_D_-_-_A  _F_r_e_e  _G_r_a_p_h_i_c_a_l  _F_r_o_n_t_-_E_n_d  _f_o_r _U_N_I_X _D_e_b_u_g_g_e_r_s, by
  6877.        Andreas Zeller and Dorothea  Lⁿtkehaus,  Computer  Science
  6878.        Report 95-07, Technische UniversitΣt Braunschweig, 1995.
  6879.  
  6880.        _D_D_D  _-  _e_i_n  _D_e_b_u_g_g_e_r _m_i_t _g_r_a_p_h_i_s_c_h_e_r _D_a_t_e_n_d_a_r_s_t_e_l_l_u_n_g, by
  6881.        Dorothea Lⁿtkehaus, Diploma Thesis, Technische UniversitΣt
  6882.        Braunschweig, 1994.
  6883.  
  6884.        The DDD _F_T_P _s_i_t_e_,
  6885.  
  6886.          ffttpp::////ffttpp..iippss..ccss..ttuu--bbss..ddee//ppuubb//llooccaall//ssoofftteecchh//dddddd//
  6887.  
  6888.  
  6889.        The DDD _W_W_W _p_a_g_e_,
  6890.  
  6891.          hhttttpp::////wwwwww..ccss..ttuu--bbss..ddee//ssoofftteecchh//dddddd//
  6892.  
  6893.  
  6894.        The DDD _M_a_i_l_i_n_g _L_i_s_t_,
  6895.  
  6896.           dddddd--uusseerrss@@iippss..ccss..ttuu--bbss..ddee
  6897.  
  6898.        For more information on this list, send a mail to
  6899.  
  6900.           dddddd--uusseerrss--rreeqquueesstt@@iippss..ccss..ttuu--bbss..ddee .
  6901.  
  6902.  
  6903.  
  6904. LLIIMMIITTAATTIIOONNSS
  6905.    GGeenneerraall LLiimmiittaattiioonnss
  6906.        If  command  output is sent to the debugger console, it is
  6907.        impossible for DDD to distinguish between  the  output  of
  6908.        the debugged program and the output of the inferior debug-
  6909.        ger.  This problem can be avoided by running  the  program
  6910.        in the separate execution window.
  6911.  
  6912.        Output that confuses DDD includes:
  6913.  
  6914.        +o Primary debugger prompts (e.g. `((ggddbb)) ' or `((ddbbxx)) ')
  6915.  
  6916.        +o Secondary debugger prompts (e.g. `>>')
  6917.  
  6918.        +o Confirmation prompts (e.g. `((yy oorr nn)) ')
  6919.  
  6920.        +o Prompts  for  more  output  (e.g.  `PPrreessss RREETTUURRNN ttoo ccoonn--
  6921.          ttiinnuuee')
  6922.  
  6923.        +o Display output (e.g. `$$ppcc == 00xx11223344')
  6924.  
  6925.  
  6926.  
  6927.  
  6928. DDD 3.1.1                   1998-12-06                        105
  6929.  
  6930.  
  6931.  
  6932.  
  6933.  
  6934. ddd(1)                                                     ddd(1)
  6935.  
  6936.  
  6937.        If your program outputs any of these strings,  you  should
  6938.        run it in the separate execution window.
  6939.  
  6940.        If the inferior debugger changes the default TTY settings,
  6941.        for instance through a `ssttttyy' command in  its  initializa-
  6942.        tion  file,  DDD  will  likely  become confused.  The same
  6943.        applies to debugged programs which change the default  TTY
  6944.        settings.
  6945.  
  6946.    LLiimmiittaattiioonnss uussiinngg GGDDBB
  6947.        Some GDB settings are essential for DDD to work correctly.
  6948.        These settings with their correct values are:
  6949.  
  6950.          sseett hheeiigghhtt 00
  6951.          sseett wwiiddtthh 00
  6952.          sseett vveerrbboossee ooffff
  6953.          sseett pprroommpptt ((ggddbb))
  6954.  
  6955.        DDD sets these values automatically when invoking GDB;  if
  6956.        these  values are changed, there may be some malfunctions,
  6957.        especially in the data display.
  6958.  
  6959.        When debugging at the machine level with GDB 4.12 and ear-
  6960.        lier  as inferior debugger, use a `ddiissppllaayy //xx $$ppcc' command
  6961.        to ensure the program counter value is  updated  correctly
  6962.        at   each  stop.   You  may  also  enter  the  command  in
  6963.        $$HHOOMMEE//..ggddbbiinniitt or (better yet) upgrade to the most  recent
  6964.        GDB version.
  6965.  
  6966.  
  6967.    LLiimmiittaattiioonnss uussiinngg DDBBXX
  6968.        When used for debugging Pascal-like programs, DDD does not
  6969.        infer correct array subscripts and always starts to  count
  6970.        with 1.
  6971.  
  6972.        With  some  DBX versions (notably Solaris DBX), DDD strips
  6973.        C-style and C++-style comments  from  the  DBX  output  in
  6974.        order  to  interpret  it  properly.  This also affects the
  6975.        output of the debugged program when sent to  the  debugger
  6976.        console.  Using the separate execution window avoids these
  6977.        problems.
  6978.  
  6979.        In some DBX versions (notably DEC DBX and AIX DBX),  there
  6980.        is no automatic data display.  As an alternative, DDD uses
  6981.        the DBX `pprriinntt' command to access data values.  This means
  6982.        that  variable names are interpreted according to the cur-
  6983.        rent frame; variables outside the current frame cannot  be
  6984.        displayed.
  6985.  
  6986.    LLiimmiittaattiioonnss uussiinngg XXDDBB
  6987.        There   is  no  automatic  data  display  in  XDB.   As  a
  6988.        workaround, DDD uses the `pp' command to access  data  val-
  6989.        ues.   This  means  that  variable  names  are interpreted
  6990.        according to the  current  frame;  variables  outside  the
  6991.  
  6992.  
  6993.  
  6994. DDD 3.1.1                   1998-12-06                        106
  6995.  
  6996.  
  6997.  
  6998.  
  6999.  
  7000. ddd(1)                                                     ddd(1)
  7001.  
  7002.  
  7003.        current frame cannot be displayed.
  7004.  
  7005.    LLiimmiittaattiioonnss uussiinngg JJDDBB
  7006.        There   is  no  automatic  data  display  in  JDB.   As  a
  7007.        workaround, DDD uses the `dduummpp'  command  to  access  data
  7008.        values.   This  means  that variable names are interpreted
  7009.        according to the current frame; variables outside the cur-
  7010.        rent frame cannot be displayed.
  7011.  
  7012.        The JDB `dduummpp' and `pprriinntt' commands do not support expres-
  7013.        sion evaluation.   Hence,  you  cannot  display  arbitrary
  7014.        expressions.
  7015.  
  7016.        Parsing  of  JDB output is quite CPU-intensive, due to the
  7017.        recognition of asynchronous prompts (any thread may output
  7018.        anything  at  any time, including prompts).  Hence, a pro-
  7019.        gram producing much console output is likely to slow  down
  7020.        DDD  considerably.   In  such a case, have the program run
  7021.        with --ddeebbuugg in a separate window  and  attach  JDB  to  it
  7022.        using the --ppaasssswwdd option.
  7023.  
  7024.    LLiimmiittaattiioonnss uussiinngg PPeerrll
  7025.        There  is  no  automatic  data  display  in  Perl.   As  a
  7026.        workaround, DDD uses the `xx' command to access  data  val-
  7027.        ues.   This  means  that  variable  names  are interpreted
  7028.        according to the current frame; variables outside the cur-
  7029.        rent frame cannot be displayed.
  7030.  
  7031. RREEPPOORRTTIINNGG BBUUGGSS
  7032.        If you find a bug in DDD, please send us a bug report.  We
  7033.        will either attempt to fix the  bug--or  include  the  bug
  7034.        description  in  the DDD `BBUUGGSS' file, such that others can
  7035.        attempt to fix it.  (Instead of sending bug  reports,  you
  7036.        may  also  send _f_i_x_e_s; DDD is an excellent tool for debug-
  7037.        ging itself :-)
  7038.  
  7039.    WWhheerree ttoo SSeenndd BBuugg RReeppoorrttss
  7040.        We recommend that you send bug reports for DDD  via  elec-
  7041.        tronic mail to
  7042.  
  7043.          dddddd--bbuuggss@@iippss..ccss..ttuu--bbss..ddee
  7044.  
  7045.        As a last resort, send bug reports on paper to:
  7046.  
  7047.          Technische UniversitΣt Braunschweig
  7048.          Abteilung Softwaretechnologie
  7049.          DDD-Bugs
  7050.          Bⁿltenweg 88
  7051.          D-38092 Braunschweig
  7052.          GERMANY
  7053.  
  7054.    IIss iitt aa DDDDDD BBuugg??
  7055.        Before  sending  in  a bug report, try to find out whether
  7056.        the problem cause really lies within DDD.  A common  cause
  7057.  
  7058.  
  7059.  
  7060. DDD 3.1.1                   1998-12-06                        107
  7061.  
  7062.  
  7063.  
  7064.  
  7065.  
  7066. ddd(1)                                                     ddd(1)
  7067.  
  7068.  
  7069.        of problems are incomplete or missing X or Motif installa-
  7070.        tions, for instance, or bugs in  the  X  server  or  Motif
  7071.        itself.  Running DDD as
  7072.  
  7073.          dddddd ----cchheecckk--ccoonnffiigguurraattiioonn
  7074.  
  7075.        checks  for  common  problems  and  gives  hints on how to
  7076.        repair them.
  7077.  
  7078.        Another potential cause of problems is the inferior debug-
  7079.        ger;  occasionally,  they  show  bugs,  too.   To find out
  7080.        whether a bug was caused by the inferior debugger, run DDD
  7081.        as
  7082.  
  7083.          dddddd ----ttrraaccee
  7084.  
  7085.        This  shows  the  interaction between DDD and the inferior
  7086.        debugger on standard error  while  DDD  is  running.   (If
  7087.        `----ttrraaccee'  is not given, this interaction is logged in the
  7088.        file `$$HHOOMMEE//..dddddd//lloogg'.)  Compare the  debugger  output  to
  7089.        the output of DDD and determine which one is wrong.
  7090.  
  7091.    HHooww ttoo RReeppoorrtt BBuuggss
  7092.        Here are some guidelines for bug reports:
  7093.  
  7094.        +o The  fundamental principle of reporting bugs usefully is
  7095.          this: _r_e_p_o_r_t _a_l_l _t_h_e _f_a_c_t_s.  If you are not sure whether
  7096.          to state a fact or leave it out, state it!
  7097.  
  7098.        +o Keep  in  mind  that  the  purpose of a bug report is to
  7099.          enable someone to fix the bug if it is not known.  It is
  7100.          not  very  important  what happens if the bug is already
  7101.          known.  Therefore, always write your bug reports on  the
  7102.          assumption that the bug is not known.
  7103.  
  7104.        +o Your  bug report should be self-contained.  Do not refer
  7105.          to information sent in  previous  mails;  your  previous
  7106.          mail may have been forwarded to somebody else.
  7107.  
  7108.        +o Please  report  each  bug  in  a separate message.  This
  7109.          makes it easier for us to track  which  bugs  have  been
  7110.          fixed  and to forward your bugs reports to the appropri-
  7111.          ate maintainer.
  7112.  
  7113.        +o Please  report  bugs  in  English;  this  increases  the
  7114.          chances  of finding someone who can fix the bug.  Do not
  7115.          assume one  particular  person  will  receive  your  bug
  7116.          report.
  7117.  
  7118.  
  7119.    WWhhaatt ttoo IInncclluuddee iinn aa BBuugg RReeppoorrtt
  7120.        To  enable  us to fix a DDD bug, you _m_u_s_t include the fol-
  7121.        lowing information:
  7122.  
  7123.  
  7124.  
  7125.  
  7126. DDD 3.1.1                   1998-12-06                        108
  7127.  
  7128.  
  7129.  
  7130.  
  7131.  
  7132. ddd(1)                                                     ddd(1)
  7133.  
  7134.  
  7135.        +o Your DDD configuration.  Invoke DDD as
  7136.  
  7137.            dddddd ----ccoonnffiigguurraattiioonn
  7138.  
  7139.          to get the configuration information.  If this does  not
  7140.          work,  please include at least the DDD version, the type
  7141.          of machine you are using, and its operating system  name
  7142.          and version number.
  7143.  
  7144.        +o The  debugger  you  are  using  and  its  version (e.g.,
  7145.          `ggddbb--44..1177' or `ddbbxx aass sshhiippppeedd wwiitthh SSoollaarriiss 22..66').
  7146.  
  7147.        +o The compiler you used to compile  DDD  and  its  version
  7148.          (e.g., `ggcccc--22..88..11').
  7149.  
  7150.        +o A  description  of  what  behavior  you observe that you
  7151.          believe is incorrect.  For example, "DDD  gets  a  fatal
  7152.          signal"  or  "DDD  exits immediately after attempting to
  7153.          create the data window".
  7154.  
  7155.        +o A _l_o_g _f_i_l_e showing the interaction between DDD  and  the
  7156.          inferior  debugger.   By  default,  this  interaction is
  7157.          logged in the file `$$HHOOMMEE//..dddddd//lloogg'.  Include all  trace
  7158.          output  from  the  DDD  invocation  up  to the first bug
  7159.          occurrence; insert own comments where necessary.
  7160.  
  7161.        +o If you wish to suggest changes to the DDD  source,  send
  7162.          us  context diffs.  If you even discuss something in the
  7163.          DDD source, refer to it by context, _n_e_v_e_r by  line  num-
  7164.          ber.
  7165.  
  7166.        Be  sure  to  include this information in _e_v_e_r_y single bug
  7167.        report.
  7168.  
  7169. HHIISSTTOORRYY
  7170.        The history of DDD is a story of code recycling.  The old-
  7171.        est parts of DDD were written in 1990, when _A_n_d_r_e_a_s _Z_e_l_l_e_r
  7172.        designed VSL, a box-based visual  structure  language  for
  7173.        visualizing  data  and program structures.  The VSL inter-
  7174.        preter and the BOX library became part of Andreas' Diploma
  7175.        Thesis, a graphical syntax editor based on the Programming
  7176.        System Generator PSG.
  7177.  
  7178.        In 1992, the VSL and BOX libraries were recycled  for  the
  7179.        NORA  project.   For NORA, an experimental inference-based
  7180.        software development tool set, Andreas wrote a graph  edi-
  7181.        tor  (based  on  VSL and the BOX libraries) and facilities
  7182.        for inter-process  knowledge  exchange.   Based  on  these
  7183.        tools, _D_o_r_o_t_h_e_a _L__ⁿ_t_k_e_h_a_u_s (now _D_o_r_o_t_h_e_a _K_r_a_b_i_e_l_l) realized
  7184.        DDD as her Diploma Thesis, 1994.
  7185.  
  7186.        The original DDD had no source window; this was  added  by
  7187.        Dorothea  during  the  winter  of 1994-1995.  In the first
  7188.        quarter of 1995, finally, Andreas completed DDD by  adding
  7189.  
  7190.  
  7191.  
  7192. DDD 3.1.1                   1998-12-06                        109
  7193.  
  7194.  
  7195.  
  7196.  
  7197.  
  7198. ddd(1)                                                     ddd(1)
  7199.  
  7200.  
  7201.        command  and  execution  windows,  extensions  for DBX and
  7202.        remote debugging as well as configuration support for sev-
  7203.        eral architectures.  Since then, Andreas has further main-
  7204.        tained and extended DDD, based on the comments and sugges-
  7205.        tions of several DDD users around the world.  See the com-
  7206.        ments in the DDD source for details.
  7207.  
  7208.        Major DDD events:
  7209.        April, 1995         DDD 0.9: First DDD beta release.
  7210.        May, 1995           DDD 1.0: First public DDD release.
  7211.        December, 1995      DDD  1.4:   Machine-level   debugging,
  7212.                            glyphs, EMACS integration.
  7213.        October, 1996       DDD  2.0: Color displays, XDB support,
  7214.                            generic DBX support, command tool.
  7215.        May, 1997           DDD 2.1: Alias detection, button tips,
  7216.                            status displays.
  7217.        November, 1997      DDD  2.2: Persistent sessions, display
  7218.                            shortcuts.
  7219.        June, 1998          DDD 3.0: Icon tool bar, Java  support,
  7220.                            JDB support.
  7221.        December, 1998      DDD  3.1: Data plotting, Perl support,
  7222.                            Python support, Undo/Redo.
  7223.  
  7224. EEXXTTEENNDDIINNGG DDDDDD
  7225.        If you have any contributions to be incorporated into DDD,
  7226.        please  send  them  to `dddddd@@iippss..ccss..ttuu--bbss..ddee'.  For sugges-
  7227.        tions on what might be done, see the file  `TTOODDOO'  in  the
  7228.        DDD distribution.
  7229.  
  7230. DDDDDD NNEEEEDDSS YYOOUURR SSUUPPPPOORRTT!!
  7231.        DDD  needs  your support!  If you have any success stories
  7232.        related to DDD, please write them down on a picture  post-
  7233.        card and send them to us:
  7234.  
  7235.          Technische UniversitΣt Braunschweig
  7236.          Abteilung Softwaretechnologie
  7237.          Bⁿltenweg 88
  7238.          D-38092 Braunschweig
  7239.          GERMANY
  7240.  
  7241.        You  may  also leave a message in the _D_D_D _G_u_e_s_t_b_o_o_k. It is
  7242.        accessible via the DDD WWW page,
  7243.  
  7244.          hhttttpp::////wwwwww..ccss..ttuu--bbss..ddee//ssoofftteecchh//dddddd// .
  7245.  
  7246.  
  7247.  
  7248. PPRRIINNTTIINNGG TTHHIISS MMAANNUUAALL
  7249.        Invoke DDD with the `----mmaannuuaall' option to show this  manual
  7250.        page on standard output.  This text output is suitable for
  7251.        installation    as    formatted    manual     page     (as
  7252.        `//uussrr//llooccaall//mmaann//ccaatt11//dddddd..11' or similar) on UNIX systems.
  7253.  
  7254.        A  PostScript  copy of this manual page, including several
  7255.  
  7256.  
  7257.  
  7258. DDD 3.1.1                   1998-12-06                        110
  7259.  
  7260.  
  7261.  
  7262.  
  7263.  
  7264. ddd(1)                                                     ddd(1)
  7265.  
  7266.  
  7267.        DDD screen shots and diagrams,  is  included  in  the  DDD
  7268.        source    distribution   and   available   separately   as
  7269.        `dddddd..mmaann..ppss..ggzz' in
  7270.  
  7271.          ffttpp::////ffttpp..iippss..ccss..ttuu--bbss..ddee//ppuubb//llooccaall//ssoofftteecchh//dddddd//ddoocc//
  7272.  
  7273.        This directory also contains other  documentation  related
  7274.        to DDD.
  7275.  
  7276.        A ROFF copy of this manual page, suitable for installation
  7277.        as     manual     page     on     UNIX     systems     (as
  7278.        `//uussrr//llooccaall//mmaann//mmaann11//dddddd..11'  or  similar),  is included in
  7279.        the DDD source distribution.
  7280.  
  7281.  
  7282. CCOOPPYYRRIIGGHHTT
  7283.    DDDDDD
  7284.        DDD is Copyright (C) 1995,  1996,  1997,  1998  Technische
  7285.        UniversitΣt Braunschweig, Germany.
  7286.  
  7287.        DDD  is free software; you can redistribute it and/or mod-
  7288.        ify it under the terms of the GNU General  Public  License
  7289.        as  published by the Free Software Foundation; either ver-
  7290.        sion 2 of the License, or (at your option) any later  ver-
  7291.        sion.
  7292.  
  7293.        DDD is distributed in the hope that it will be useful, but
  7294.        _w_i_t_h_o_u_t _a_n_y _w_a_r_r_a_n_t_y; without even the implied warranty of
  7295.        _m_e_r_c_h_a_n_t_a_b_i_l_i_t_y  or _f_i_t_n_e_s_s _f_o_r _a _p_a_r_t_i_c_u_l_a_r _p_u_r_p_o_s_e.  See
  7296.        the License for more details.
  7297.  
  7298.        You should have received a copy of the License along  with
  7299.        DDD.  If not, invoke DDD with the `----lliicceennssee' option; this
  7300.        will print a copy on standard output.  To read the License
  7301.        from within DDD, use `HHeellpp-->>DDDDDD LLiicceennssee'.
  7302.  
  7303.  
  7304.    DDDDDD MMaannuuaall
  7305.        This  DDD  manual  is Copyright (C) 1995, 1996, 1997, 1998
  7306.        Technische UniversitΣt Braunschweig, Germany.
  7307.  
  7308.        Permission is granted  to  make  and  distribute  verbatim
  7309.        copies  of  this  manual provided the copyright notice and
  7310.        this permission notice are preserved on all copies.
  7311.  
  7312.        Permission is granted to copy and distribute modified ver-
  7313.        sions  of  this  manual  under the conditions for verbatim
  7314.        copying, provided that the entire resulting  derived  work
  7315.        is  distributed  under  the  terms  of a permission notice
  7316.        identical to this one.
  7317.  
  7318.        Permission is granted to copy and distribute  translations
  7319.        of this manual into another language, under the above con-
  7320.        ditions for modified versions, except that this permission
  7321.  
  7322.  
  7323.  
  7324. DDD 3.1.1                   1998-12-06                        111
  7325.  
  7326.  
  7327.  
  7328.  
  7329.  
  7330. ddd(1)                                                     ddd(1)
  7331.  
  7332.  
  7333.        notice  may  be  included  in translations approved by the
  7334.        Free  Software  Foundation  instead  of  in  the  original
  7335.        English.
  7336.  
  7337.  
  7338.  
  7339.  
  7340.  
  7341.  
  7342.  
  7343.  
  7344.  
  7345.  
  7346.  
  7347.  
  7348.  
  7349.  
  7350.  
  7351.  
  7352.  
  7353.  
  7354.  
  7355.  
  7356.  
  7357.  
  7358.  
  7359.  
  7360.  
  7361.  
  7362.  
  7363.  
  7364.  
  7365.  
  7366.  
  7367.  
  7368.  
  7369.  
  7370.  
  7371.  
  7372.  
  7373.  
  7374.  
  7375.  
  7376.  
  7377.  
  7378.  
  7379.  
  7380.  
  7381.  
  7382.  
  7383.  
  7384.  
  7385.  
  7386.  
  7387.  
  7388.  
  7389.  
  7390. DDD 3.1.1                   1998-12-06                        112
  7391.  
  7392.  
  7393.