|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 66560 (0x10400) Types: Ada Source Notes: 03_class, FILE, Long Ada Source, R1k_Segment, e3_tag, package body Xlbmp_Debugger, seg_004f00
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦this⟧
--/ if R1000 or Cdf_Hpux then with Debug_Tools; --/ end if; --/ if R1000 then with Transport; with Transport_Defs; --/ end if; with Xlbt_Arithmetic; use Xlbt_Arithmetic; with Xlbt_Basic3; use Xlbt_Basic3; with Xlbt_Color; use Xlbt_Color; with Xlbt_Event2; use Xlbt_Event2; with Xlbt_Font3; use Xlbt_Font3; with Xlbt_Gc; use Xlbt_Gc; with Xlbt_Geometry; use Xlbt_Geometry; with Xlbt_Hint3; use Xlbt_Hint3; with Xlbt_Key3; use Xlbt_Key3; with Xlbt_Keyboard3; use Xlbt_Keyboard3; with Xlbt_Proc_Var; use Xlbt_Proc_Var; with Xlbt_Rm; use Xlbt_Rm; with Xlbt_String; use Xlbt_String; with Xlbt_Visual3; use Xlbt_Visual3; with Xlbt_Window4; use Xlbt_Window4; with Xlbp_Rm_Quark; use Xlbp_Rm_Quark; with Xlbmt_Network_Types; use Xlbmt_Network_Types; package body Xlbmp_Debugger is ------------------------------------------------------------------------------ -- X Library Machine Dependent Debugger Support -- -- Xlbmp_Debugger - Some debuggers have special facilities that can be -- set up for convenience in debugging. Do whatever may be necessary to -- set things up. ------------------------------------------------------------------------------ -- Copyright 1989 - 1991 by Rational, Santa Clara, California. -- -- All Rights Reserved. -- -- Permission to use, copy, modify, and distribute this software and its -- documentation for any purpose and without fee is hereby granted, -- provided that the above copyright notice(s) appear in all copies and that -- both that copyright notice(s) and this permission notice appear in -- supporting documentation, and that the name of Rational not be used in -- advertising or publicity pertaining to distribution of the software -- without specific, written prior permission. -- -- Rational disclaims all warranties with regard to this software, including -- all implied warranties of merchantability and fitness, in no event shall -- Rational be liable for any special, indirect or consequential damages or -- any damages whatsoever resulting from loss of use, data or profits, whether -- in an action of contract, negligence or other tortious action, arising out -- of or in connection with the use or performance of this software. ------------------------------------------------------------------------------ --/ if R1000 or Cdf_Hpux then --\x0c ------------------------------------------------------------------------------ -- Variable_String - a crude variable length string type ------------------------------------------------------------------------------ type Variable_String (Max_Length : Natural) is record Length : Natural := 0; Str : String (1 .. Max_Length); end record; Max_Line : constant := 78; --\x0c function Image (Str : Variable_String) return String is begin return Str.Str (1 .. Str.Length); end Image; --\x0c procedure Append (Str : in out Variable_String; Chr : Character) is ------------------------------------------------------------------------------ -- Str - Specifies the string to modify -- Chr - Specifies the character to append -- -- Called to append a character onto the end of a variable string. ------------------------------------------------------------------------------ begin if Str.Length = Str.Max_Length then return; end if; Str.Length := Str.Length + 1; Str.Str (Str.Length) := Chr; end Append; --\x0c procedure Append (Str : in out Variable_String; Val : String) is ------------------------------------------------------------------------------ -- Str - Specifies the string to modify -- Chr - Specifies the character to append -- -- Called to append a string onto the end of a variable string. ------------------------------------------------------------------------------ begin if Str.Length + Val'Length > Str.Str'Last then Append (Str, Val (Val'First .. Val'First - 1 + Str.Max_Length - Str.Length)); return; end if; Str.Str (Str.Length + 1 .. Str.Length + Val'Length) := Val; Str.Length := Str.Length + Val'Length; end Append; --\x0c procedure Add (What : String; Result : in out Variable_String; Last_Crlf : in out Natural; Prefix : String) is ------------------------------------------------------------------------------ -- What - Specifies a string to add to the Result -- Result - Specifies our accumulated output -- Last_Crlf - Specifies the last crlf that we did -- Prefix - Specifies a new-line prefix string to use -- -- Called to append a character onto the end of our output string. ------------------------------------------------------------------------------ begin if Last_Crlf + What'Length > Max_Line then Append (Result, Ascii.Lf); Append (Result, Prefix); Last_Crlf := Prefix'Length; end if; Append (Result, What); Last_Crlf := Last_Crlf + What'Length; end Add; --\x0c function Image_X_Atom (Value : X_Atom; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return the name of predefined atoms and something "intelligent" for others. ------------------------------------------------------------------------------ begin case Value.Number is when 1 => return "PRIMARY"; when 2 => return "SECONDARY"; when 3 => return "ARC"; when 4 => return "ATOM"; when 5 => return "BITMAP"; when 6 => return "CARDINAL"; when 7 => return "COLORMAP"; when 8 => return "CURSOR"; when 9 => return "CUT_BUFFER0"; when 10 => return "CUT_BUFFER1"; when 11 => return "CUT_BUFFER2"; when 12 => return "CUT_BUFFER3"; when 13 => return "CUT_BUFFER4"; when 14 => return "CUT_BUFFER5"; when 15 => return "CUT_BUFFER6"; when 16 => return "CUT_BUFFER7"; when 17 => return "DRAWABLE"; when 18 => return "FONT"; when 19 => return "INTEGER"; when 20 => return "PIXMAP"; when 21 => return "POINT"; when 22 => return "RECTANGLE"; when 23 => return "RESOURCE_MANAGER"; when 24 => return "RGB_COLOR_MAP"; when 25 => return "RGB_BEST_MAP"; when 26 => return "RGB_BLUE_MAP"; when 27 => return "RGB_DEFAULT_MAP"; when 28 => return "RGB_GRAY_MAP"; when 29 => return "RGB_GREEN_MAP"; when 30 => return "RGB_RED_MAP"; when 31 => return "STRING"; when 32 => return "VISUALID"; when 33 => return "WINDOW"; when 34 => return "WM_COMMAND"; when 35 => return "WM_HINTS"; when 36 => return "WM_CLIENT_MACHINE"; when 37 => return "WM_ICON_NAME"; when 38 => return "WM_ICON_SIZE"; when 39 => return "WM_NAME"; when 40 => return "WM_NORMAL_HINTS"; when 41 => return "WM_SIZE_HINTS"; when 42 => return "WM_ZOOM_HINTS"; when 43 => return "MIN_SPACE"; when 44 => return "NORM_SPACE"; when 45 => return "MAX_SPACE"; when 46 => return "END_SPACE"; when 47 => return "SUPERSCRIPT_X"; when 48 => return "SUPERSCRIPT_Y"; when 49 => return "SUBSCRIPT_X"; when 50 => return "SUBSCRIPT_Y"; when 51 => return "UNDERLINE_POSITION"; when 52 => return "UNDERLINE_THICKNESS"; when 53 => return "STRIKEOUT_ASCENT"; when 54 => return "STRIKEOUT_DESCENT"; when 55 => return "ITALIC_ANGLE"; when 56 => return "X_HEIGHT"; when 57 => return "QUAD_WIDTH"; when 58 => return "WEIGHT"; when 59 => return "POINT_SIZE"; when 60 => return "RESOLUTION"; when 61 => return "COPYRIGHT"; when 62 => return "NOTICE"; when 63 => return "FONT_NAME"; when 64 => return "FAMILY_NAME"; when 65 => return "FULL_NAME"; when 66 => return "CAP_HEIGHT"; when 67 => return "WM_CLASS"; when 68 => return "WM_TRANSIENT_FOR"; when others => return "X_Atom'(Number =>" & S_Long'Image (Value.Number) & ")"; end case; end Image_X_Atom; procedure Register_X_Atom is new Debug_Tools.Register (X_Atom, Image_X_Atom); --\x0c function Image_X_Color_Flags (Value : X_Color_Flags; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); Last_Crlf : Natural := Prefix'Length; First : Boolean := True; begin Append (Result, '<'); for I in Value'Range loop if Value (I) then if First then First := False; else Append (Result, ','); Last_Crlf := Last_Crlf + 1; end if; Add (X_Color_Flags_Index'Image (I), Result, Last_Crlf, Prefix); end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_Color_Flags; procedure Register_X_Color_Flags is new Debug_Tools.Register (X_Color_Flags, Image_X_Color_Flags); --\x0c function Image_X_Key_Sym (Value : X_Key_Sym; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return the decimal and hexadecimal value of a key sym. ------------------------------------------------------------------------------ Result : Variable_String (5000); Tmp : String (1 .. 16); begin Append (Result, '<'); S_Long_Io.Put (Tmp, S_Long (Value), Base => 10); for I in Tmp'Range loop if Tmp (I) /= ' ' then Append (Result, Tmp (I .. Tmp'Last)); exit; end if; end loop; S_Long_Io.Put (Tmp, S_Long (Value), Base => 16); Append (Result, '/'); for I in Tmp'Range loop if Tmp (I) /= ' ' then Append (Result, Tmp (I .. Tmp'Last)); exit; end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_Key_Sym; procedure Register_X_Key_Sym is new Debug_Tools.Register (X_Key_Sym, Image_X_Key_Sym); --\x0c function Image_X_New_Window_Attributes (Value : X_New_Window_Attributes; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); Last_Crlf : Natural := Prefix'Length; First : Boolean := True; begin Append (Result, '<'); for I in Value'Range loop if Value (I) then if First then First := False; else Append (Result, ','); Last_Crlf := Last_Crlf + 1; end if; Add (X_New_Window_Attributes_Index'Image (I), Result, Last_Crlf, Prefix); end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_New_Window_Attributes; procedure Register_X_New_Window_Attributes is new Debug_Tools.Register (X_New_Window_Attributes, Image_X_New_Window_Attributes); --\x0c function Image_X_Per_Char_Flags (Value : X_Per_Char_Flags; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); Last_Crlf : Natural := Prefix'Length; First : Boolean := True; begin Append (Result, '<'); for I in Value'Range loop if Value (I) then if First then First := False; else Append (Result, ','); Last_Crlf := Last_Crlf + 1; end if; Add (X_Per_Char_Flags_Index'Image (I), Result, Last_Crlf, Prefix); end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_Per_Char_Flags; procedure Register_X_Per_Char_Flags is new Debug_Tools.Register (X_Per_Char_Flags, Image_X_Per_Char_Flags); --\x0c function Image_X_Rm_Quark (Value : X_Rm_Quark; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string containing the name of the quark. ------------------------------------------------------------------------------ Result : Variable_String (5000); begin Append (Result, '{'); begin Append (Result, To_String (X_Rm_Quark_To_String (Value))); exception when others => Append (Result, "(bad quark value)"); end; Append (Result, S_Long'Image (Value.Id)); Append (Result, '}'); return Image (Result); end Image_X_Rm_Quark; procedure Register_X_Rm_Quark is new Debug_Tools.Register (X_Rm_Quark, Image_X_Rm_Quark); --\x0c function Image_X_String (Value : X_String; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string containing the contents of an X_String. ------------------------------------------------------------------------------ Result : Variable_String (5000); begin Append (Result, '['); Append (Result, S_Natural'Image (Value'First)); Append (Result, ".."); Append (Result, S_Natural'Image (Value'Last)); Append (Result, "=="); Append (Result, S_Natural'Image (Value'Length)); Append (Result, "] => "); Append (Result, Ascii.Lf); Append (Result, Prefix); Append (Result, '{'); for I in Value'Range loop if X_Character'Pos (Value (I)) in 0 .. 127 then if Value (I) = '\' then Append (Result, '\'); Append (Result, '\'); elsif (Value (I) = Lf) then Append (Result, Ascii.Lf); Append (Result, Prefix); else Append (Result, Character'Val (X_Character'Pos (Value (I)))); end if; else Append (Result, '\'); Append (Result, Character'Val (X_Character'Pos (Value (I)) - 128)); end if; end loop; Append (Result, '}'); return Image (Result); end Image_X_String; procedure Register_X_String is new Debug_Tools.Register (X_String, Image_X_String); --\x0c function Image_X_Window_Changes_Mask (Value : X_Window_Changes_Mask; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); Last_Crlf : Natural := Prefix'Length; First : Boolean := True; begin Append (Result, '<'); for I in Value'Range loop if Value (I) then if First then First := False; else Append (Result, ','); Last_Crlf := Last_Crlf + 1; end if; Add (X_Window_Changes_Mask_Index'Image (I), Result, Last_Crlf, Prefix); end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_Window_Changes_Mask; procedure Register_X_Window_Changes_Mask is new Debug_Tools.Register (X_Window_Changes_Mask, Image_X_Window_Changes_Mask); --\x0c function Image_X_Event_Mask (Value : X_Event_Mask; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); Last_Crlf : Natural := Prefix'Length; First : Boolean := True; begin Append (Result, '<'); for I in Value'Range loop if Value (I) then if First then First := False; else Append (Result, ','); Last_Crlf := Last_Crlf + 1; end if; Add (X_Event_Mask_Index'Image (I), Result, Last_Crlf, Prefix); end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_Event_Mask; procedure Register_X_Event_Mask is new Debug_Tools.Register (X_Event_Mask, Image_X_Event_Mask); --\x0c function Image_X_Enter_Leave_Flags (Value : X_Enter_Leave_Flags; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); Last_Crlf : Natural := Prefix'Length; First : Boolean := True; begin Append (Result, '<'); for I in Value'Range loop if Value (I) then if First then First := False; else Append (Result, ','); Last_Crlf := Last_Crlf + 1; end if; Add (X_Enter_Leave_Flags_Index'Image (I), Result, Last_Crlf, Prefix); end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_Enter_Leave_Flags; procedure Register_X_Enter_Leave_Flags is new Debug_Tools.Register (X_Enter_Leave_Flags, Image_X_Enter_Leave_Flags); --\x0c function Image_X_Gc_Components (Value : X_Gc_Components; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); Last_Crlf : Natural := Prefix'Length; First : Boolean := True; begin Append (Result, '<'); for I in Value'Range loop if Value (I) then if First then First := False; else Append (Result, ','); Last_Crlf := Last_Crlf + 1; end if; Add (X_Gc_Components_Index'Image (I), Result, Last_Crlf, Prefix); end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_Gc_Components; procedure Register_X_Gc_Components is new Debug_Tools.Register (X_Gc_Components, Image_X_Gc_Components); --\x0c function Image_X_Size_Hints_Flags (Value : X_Size_Hints_Flags; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); Last_Crlf : Natural := Prefix'Length; First : Boolean := True; begin Append (Result, '<'); for I in Value'Range loop if Value (I) then if First then First := False; else Append (Result, ','); Last_Crlf := Last_Crlf + 1; end if; Add (X_Size_Hints_Flags_Index'Image (I), Result, Last_Crlf, Prefix); end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_Size_Hints_Flags; procedure Register_X_Size_Hints_Flags is new Debug_Tools.Register (X_Size_Hints_Flags, Image_X_Size_Hints_Flags); --\x0c function Image_X_Wm_Hints_Flags (Value : X_Wm_Hints_Flags; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); Last_Crlf : Natural := Prefix'Length; First : Boolean := True; begin Append (Result, '<'); for I in Value'Range loop if Value (I) then if First then First := False; else Append (Result, ','); Last_Crlf := Last_Crlf + 1; end if; Add (X_Wm_Hints_Flags_Index'Image (I), Result, Last_Crlf, Prefix); end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_Wm_Hints_Flags; procedure Register_X_Wm_Hints_Flags is new Debug_Tools.Register (X_Wm_Hints_Flags, Image_X_Wm_Hints_Flags); --\x0c function Image_X_Key_Button_Mask (Value : X_Key_Button_Mask; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); Last_Crlf : Natural := Prefix'Length; First : Boolean := True; begin Append (Result, '<'); for I in Value'Range loop if Value (I) then if First then First := False; else Append (Result, ','); Last_Crlf := Last_Crlf + 1; end if; Add (X_Key_Button_Mask_Index'Image (I), Result, Last_Crlf, Prefix); end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_Key_Button_Mask; procedure Register_X_Key_Button_Mask is new Debug_Tools.Register (X_Key_Button_Mask, Image_X_Key_Button_Mask); --\x0c function Image_X_Keyboard_Control_Flags (Value : X_Keyboard_Control_Flags; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); Last_Crlf : Natural := Prefix'Length; First : Boolean := True; begin Append (Result, '<'); for I in Value'Range loop if Value (I) then if First then First := False; else Append (Result, ','); Last_Crlf := Last_Crlf + 1; end if; Add (X_Keyboard_Control_Flags_Index'Image (I), Result, Last_Crlf, Prefix); end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_Keyboard_Control_Flags; procedure Register_X_Keyboard_Control_Flags is new Debug_Tools.Register (X_Keyboard_Control_Flags, Image_X_Keyboard_Control_Flags); --\x0c function Image_X_Parse_Geometry_Flags (Value : X_Parse_Geometry_Flags; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); Last_Crlf : Natural := Prefix'Length; First : Boolean := True; begin Append (Result, '<'); for I in Value'Range loop if Value (I) then if First then First := False; else Append (Result, ','); Last_Crlf := Last_Crlf + 1; end if; Add (X_Parse_Geometry_Flags_Index'Image (I), Result, Last_Crlf, Prefix); end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_Parse_Geometry_Flags; procedure Register_X_Parse_Geometry_Flags is new Debug_Tools.Register (X_Parse_Geometry_Flags, Image_X_Parse_Geometry_Flags); --\x0c function Image_X_Visual_Info_Flags (Value : X_Visual_Info_Flags; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); Last_Crlf : Natural := Prefix'Length; First : Boolean := True; begin Append (Result, '<'); for I in Value'Range loop if Value (I) then if First then First := False; else Append (Result, ','); Last_Crlf := Last_Crlf + 1; end if; Add (X_Visual_Info_Flags_Index'Image (I), Result, Last_Crlf, Prefix); end if; end loop; Append (Result, '>'); return Image (Result); end Image_X_Visual_Info_Flags; procedure Register_X_Visual_Info_Flags is new Debug_Tools.Register (X_Visual_Info_Flags, Image_X_Visual_Info_Flags); --\x0c function Image_Connection_Id (Value : Transport.Connection_Id; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); begin Append (Result, '<'); if Transport."=" (Value, Transport.Null_Connection_Id) then Append (Result, "Null_Connection_Id"); else Append (Result, "non-Null_Connection_Id"); end if; Append (Result, '>'); return Image (Result); end Image_Connection_Id; procedure Register_Connection_Id is new Debug_Tools.Register (Transport.Connection_Id, Image_Connection_Id); --\x0c function Image_Status_Code (Value : Transport_Defs.Status_Code; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); begin Append (Result, '<'); Append (Result, Transport_Defs.Image (Value)); Append (Result, '>'); return Image (Result); end Image_Status_Code; procedure Register_Status_Code is new Debug_Tools.Register (Transport_Defs.Status_Code, Image_Status_Code); --\x0c function Raw_Data_Image (Value : X_Raw_Data) return String is ------------------------------------------------------------------------------ -- Value - Specifies the value (in the 0..255 range) to convert -- -- Convert Value into a " ddd(hh)" string. ddd is the decimal value and hh -- is the hex value. ------------------------------------------------------------------------------ Chr : X_Raw_Data; Result : String (1 .. 8); begin Result (1) := ' '; if Value > 99 then Result (2) := Character'Val (Character'Pos ('0') + Value / 100); else Result (2) := ' '; end if; if Value > 9 then Result (3) := Character'Val (Character'Pos ('0') + Value / 10 rem 10); else Result (3) := ' '; end if; Result (4) := Character'Val (Character'Pos ('0') + Value rem 10); Result (5) := '('; Chr := Value / 16; if Chr > 9 then Result (6) := Character'Val (Character'Pos ('A') + Chr - 10); else Result (6) := Character'Val (Character'Pos ('0') + Chr); end if; Chr := Value rem 16; if Chr > 9 then Result (7) := Character'Val (Character'Pos ('A') + Chr - 10); else Result (7) := Character'Val (Character'Pos ('0') + Chr); end if; Result (8) := ')'; return Result; end Raw_Data_Image; --\x0c function Image_X_Raw_Data_Array (Value : X_Raw_Data_Array; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); J : Natural := Value'First; begin Append (Result, '['); Append (Result, Natural'Image (Value'First)); Append (Result, ".."); Append (Result, Natural'Image (Value'Last)); Append (Result, "=="); Append (Result, Natural'Image (Value'Length)); Append (Result, "] => "); while J < Value'Last loop Append (Result, Ascii.Lf); Append (Result, Prefix); declare Num : constant String := " " & Natural'Image (J); begin Append (Result, Num (Num'Last - 4 .. Num'Last)); end; Append (Result, ":"); for I in reverse 1 .. 8 loop Append (Result, Raw_Data_Image (Value (J))); J := J + 1; if J > Value'Last then exit; end if; end loop; end loop; Append (Result, '>'); return Image (Result); exception when others => return Image (Result); end Image_X_Raw_Data_Array; procedure Register_X_Raw_Data_Array is new Debug_Tools.Register (X_Raw_Data_Array, Image_X_Raw_Data_Array); --\x0c function Image_X_Buffer (Value : X_Buffer; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); J : Natural := 1; begin Append (Result, '<'); Append (Result, "Used:"); Append (Result, Natural'Image (Value.Used)); Append (Result, "=>"); while J < Value.Used loop Append (Result, Ascii.Lf); Append (Result, Prefix); declare Num : constant String := " " & Natural'Image (J); begin Append (Result, Num (Num'Last - 4 .. Num'Last)); end; Append (Result, ":"); for I in reverse 1 .. 8 loop Append (Result, Raw_Data_Image (Value.Data (J))); J := J + 1; if J > Value.Used then exit; end if; end loop; end loop; Append (Result, '>'); return Image (Result); end Image_X_Buffer; procedure Register_X_Buffer is new Debug_Tools.Register (X_Buffer, Image_X_Buffer); --\x0c function Image_Subprogram_Type (Value : X_Procedure_Variable; Level : Natural; Prefix : String; Expand_Pointers : Boolean) return String is ------------------------------------------------------------------------------ -- Return a string of the form "<bit,bit,bit,bit>" where each "bit" is the -- name of a bit that is turned on. ------------------------------------------------------------------------------ Result : Variable_String (5000); begin Append (Result, '<'); if Value = None_X_Procedure_Variable then Append (Result, "None_Proc_Var"); else Append (Result, "non-None_Proc_Var"); end if; Append (Result, '>'); return Image (Result); end Image_Subprogram_Type; procedure Register_Subprogram_Type is new Debug_Tools.Register (X_Procedure_Variable, Image_Subprogram_Type); --/ end if; -- R1000 or Cdf_Hpux --\x0c procedure Register_Debugging_Imagers is ------------------------------------------------------------------------------ -- Registers special debugging printout routines with the R1000 debugger. ------------------------------------------------------------------------------ begin --/ if R1000 or Cdf_Hpux then ----Subprogram_Implementation Register_Subprogram_Type; ----Transport Register_Connection_Id; Register_Status_Code; ----Basic Register_X_Atom; Register_X_Color_Flags; Register_X_Event_Mask; Register_X_New_Window_Attributes; Register_X_Per_Char_Flags; Register_X_Window_Changes_Mask; ----System Register_X_Raw_Data_Array; ----Display Register_X_Buffer; ----Event Register_X_Enter_Leave_Flags; ----Gc Register_X_Gc_Components; ----Hints Register_X_Size_Hints_Flags; Register_X_Wm_Hints_Flags; ----Key Register_X_Key_Button_Mask; Register_X_Key_Sym; Register_X_Keyboard_Control_Flags; ----RM Register_X_Rm_Quark; ----String Register_X_String; ----Utility Register_X_Parse_Geometry_Flags; Register_X_Visual_Info_Flags; --/ else -- not (R1000 or Cdf_Hpux) --// null; --/ end if; end Register_Debugging_Imagers; --\x0c procedure Check_Machine_Assumptions is separate; --\x0c begin Check_Machine_Assumptions; end Xlbmp_Debugger;
nblk1=40 nid=0 hdr6=80 [0x00] rec0=30 rec1=00 rec2=01 rec3=09c [0x01] rec0=14 rec1=00 rec2=02 rec3=022 [0x02] rec0=17 rec1=00 rec2=03 rec3=07a [0x03] rec0=01 rec1=00 rec2=40 rec3=002 [0x04] rec0=1a rec1=00 rec2=04 rec3=056 [0x05] rec0=02 rec1=00 rec2=3f rec3=00a [0x06] rec0=16 rec1=00 rec2=05 rec3=01c [0x07] rec0=15 rec1=00 rec2=06 rec3=09c [0x08] rec0=21 rec1=00 rec2=07 rec3=02c [0x09] rec0=1e rec1=00 rec2=08 rec3=01e [0x0a] rec0=1e rec1=00 rec2=09 rec3=00a [0x0b] rec0=1c rec1=00 rec2=0a rec3=04c [0x0c] rec0=1f rec1=00 rec2=0b rec3=004 [0x0d] rec0=15 rec1=00 rec2=0c rec3=00c [0x0e] rec0=00 rec1=00 rec2=3e rec3=00e [0x0f] rec0=17 rec1=00 rec2=0d rec3=03c [0x10] rec0=00 rec1=00 rec2=3d rec3=006 [0x11] rec0=1b rec1=00 rec2=0e rec3=02a [0x12] rec0=19 rec1=00 rec2=0f rec3=034 [0x13] rec0=00 rec1=00 rec2=3c rec3=00e [0x14] rec0=15 rec1=00 rec2=10 rec3=00e [0x15] rec0=00 rec1=00 rec2=3b rec3=00e [0x16] rec0=16 rec1=00 rec2=11 rec3=09c [0x17] rec0=1b rec1=00 rec2=12 rec3=044 [0x18] rec0=19 rec1=00 rec2=13 rec3=018 [0x19] rec0=19 rec1=00 rec2=14 rec3=028 [0x1a] rec0=1b rec1=00 rec2=15 rec3=018 [0x1b] rec0=00 rec1=00 rec2=3a rec3=00e [0x1c] rec0=14 rec1=00 rec2=16 rec3=032 [0x1d] rec0=01 rec1=00 rec2=39 rec3=00e [0x1e] rec0=16 rec1=00 rec2=17 rec3=046 [0x1f] rec0=01 rec1=00 rec2=38 rec3=002 [0x20] rec0=1a rec1=00 rec2=18 rec3=01e [0x21] rec0=16 rec1=00 rec2=19 rec3=03e [0x22] rec0=01 rec1=00 rec2=37 rec3=00a [0x23] rec0=17 rec1=00 rec2=1a rec3=032 [0x24] rec0=00 rec1=00 rec2=36 rec3=00c [0x25] rec0=17 rec1=00 rec2=1b rec3=054 [0x26] rec0=19 rec1=00 rec2=1c rec3=088 [0x27] rec0=00 rec1=00 rec2=35 rec3=00e [0x28] rec0=18 rec1=00 rec2=1d rec3=024 [0x29] rec0=00 rec1=00 rec2=34 rec3=00e [0x2a] rec0=17 rec1=00 rec2=1e rec3=024 [0x2b] rec0=00 rec1=00 rec2=33 rec3=006 [0x2c] rec0=1b rec1=00 rec2=1f rec3=024 [0x2d] rec0=00 rec1=00 rec2=32 rec3=008 [0x2e] rec0=16 rec1=00 rec2=20 rec3=004 [0x2f] rec0=00 rec1=00 rec2=31 rec3=00e [0x30] rec0=17 rec1=00 rec2=21 rec3=004 [0x31] rec0=00 rec1=00 rec2=30 rec3=00e [0x32] rec0=1a rec1=00 rec2=22 rec3=02a [0x33] rec0=16 rec1=00 rec2=23 rec3=05a [0x34] rec0=15 rec1=00 rec2=24 rec3=05c [0x35] rec0=1b rec1=00 rec2=25 rec3=01c [0x36] rec0=00 rec1=00 rec2=2f rec3=014 [0x37] rec0=16 rec1=00 rec2=26 rec3=042 [0x38] rec0=1a rec1=00 rec2=27 rec3=024 [0x39] rec0=00 rec1=00 rec2=2e rec3=00a [0x3a] rec0=1a rec1=00 rec2=28 rec3=014 [0x3b] rec0=00 rec1=00 rec2=2d rec3=00a [0x3c] rec0=1e rec1=00 rec2=29 rec3=038 [0x3d] rec0=15 rec1=00 rec2=2a rec3=044 [0x3e] rec0=2d rec1=00 rec2=2b rec3=006 [0x3f] rec0=29 rec1=00 rec2=2c rec3=000 tail 0x21500953c8197801faaed 0x42a00088462063203