DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 42258 (0xa512) Types: TextFile Names: »B«
└─⟦85b835f43⟧ Bits:30000549 8mm tape, Rational 1000, Xlib rev 6.00 └─ ⟦0c20f784e⟧ »DATA« └─⟦1abbe589f⟧ └─⟦059497ac5⟧ └─⟦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 --\f ------------------------------------------------------------------------------ -- 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; --\f function Image (Str : Variable_String) return String is begin return Str.Str (1 .. Str.Length); end Image; --\f 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; --\f 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; --\f 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; --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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); --\f 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; --\f 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); --\f 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); --\f 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 --\f 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; --\f procedure Check_Machine_Assumptions is separate; --\f begin Check_Machine_Assumptions; end Xlbmp_Debugger;