~rdoering/ubuntu/intrepid/erlang/fix-535090

« back to all changes in this revision

Viewing changes to erts/etc/unix/etp-commands

  • Committer: Bazaar Package Importer
  • Author(s): Soren Hansen
  • Date: 2007-05-01 16:57:10 UTC
  • mfrom: (1.1.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20070501165710-2sapk0hp2gf3o0ip
Tags: 1:11.b.4-2ubuntu1
* Merge with Debian Unstable. Remaining changes:
  - Add -fno-stack-protector to fix broken crypto_drv.
* DebianMaintainerField update.

Show diffs side-by-side

added added

removed removed

Lines of Context:
503
503
      else
504
504
        if (($arg0) & 0xF) == 0xf
505
505
          # Fixnum
506
 
          printf "%d", ($arg0)>>4
 
506
          printf "%ld", (long)((Sint)($arg0)>>4)
507
507
        else
508
508
          # Immediate2  - 0xB
509
509
          if (($arg0) & 0x3f) == 0x0b
713
713
  set $etp_pid_1 = (Eterm)($arg0)
714
714
  if ($etp_pid_1 & 0xF) == 0x3
715
715
    # Internal pid
716
 
    printf "<0/%u.%u.%u>", erts_this_node->creation, \
717
 
           ($etp_pid_1>>4)&0x7fff, ($etp_pid_1>>19)&0x1fff
 
716
    printf "<0.%u.%u>", (unsigned) ($etp_pid_1>>4)&0x7fff, \
 
717
                        (unsigned) ($etp_pid_1>>19)&0x1fff
718
718
  else
719
719
    printf "#NotPid<%#x>", ($arg0)
720
720
  end
766
766
  set $etp_port_1 = (Eterm)($arg0)
767
767
  if ($etp_port_1 & 0xF) == 0x7
768
768
    # Internal port
769
 
    printf "#Port<0/%u.%u>", erts_this_node->creation, \
770
 
           ($etp_port_1>>4)&0x3ffff
 
769
    printf "#Port<0.%u>", (unsigned) ($etp_port_1>>4)&0x3ffff
771
770
  else
772
771
    printf "#NotPort<%#x>", ($arg0)
773
772
  end
828
827
        if $etp_bignum_1_p[0] & 0x04
829
828
          printf "-"
830
829
        end
831
 
        set $etp_bignum_1_p = (unsigned short *)($etp_bignum_1_p + 1)
 
830
        set $etp_bignum_1_p = (digit_t *)($etp_bignum_1_p + 1)
832
831
        printf "16#"
833
 
        while $etp_bignum_1_i > 0
834
 
          set $etp_bignum_1_i--
835
 
          printf "%04x", $etp_bignum_1_p[$etp_bignum_1_i]
 
832
        if $etp_arch64
 
833
          while $etp_bignum_1_i > 0
 
834
            set $etp_bignum_1_i--
 
835
            printf "%08x", $etp_bignum_1_p[$etp_bignum_1_i]
 
836
          end
 
837
        else
 
838
          while $etp_bignum_1_i > 0
 
839
            set $etp_bignum_1_i--
 
840
            printf "%04x", $etp_bignum_1_p[$etp_bignum_1_i]
 
841
          end
836
842
        end
837
843
      end
838
844
    end
868
874
  if ((Eterm)($arg0) & 0x3) != 0x2
869
875
    printf "#NotBoxed<%#x>", (Eterm)($arg0)
870
876
  else
871
 
    set $etp_ref_1_p = (Eterm*)((Eterm)($arg0) & ~0x3)
872
 
    if ($etp_ref_1_p[0] & 0x3b) != 0x10
873
 
      printf "#NotRef<%#x>", $etp_ref_1_p[0]
 
877
    set $etp_ref_1_p = (RefThing *)((Eterm)($arg0) & ~0x3)
 
878
    if ($etp_ref_1_p->header & 0x3b) != 0x10
 
879
      printf "#NotRef<%#x>", $etp_ref_1_p->header
874
880
    else
875
 
      set $etp_ref_1_i = ($etp_ref_1_p[0] >> 6)
876
 
      printf "#Ref<0"
877
 
      while $etp_ref_1_i > 0
878
 
        printf ".%lu", (unsigned long)$etp_ref_1_p[$etp_ref_1_i]
 
881
      set $etp_ref_1_nump = (Uint32 *) 0
 
882
      set $etp_ref_1_error = 0
 
883
      if ($etp_ref_1_p->header >> 6) == 0
 
884
        set $etp_ref_1_error = 1
 
885
      else
 
886
        if $etp_arch64
 
887
          set $etp_ref_1_i = (int) ((Uint32 *) $etp_ref_1_p->data)[0]
 
888
          if (($etp_ref_1_i + 1) > (2 * ($etp_ref_1_p->header >> 6)))
 
889
            set $etp_ref_1_error = 1
 
890
          else
 
891
            set $etp_ref_1_nump = &((Uint32 *) $etp_ref_1_p->data)[1]
 
892
          end
 
893
        else
 
894
          set $etp_ref_1_i = (int) ($etp_ref_1_p->header >> 6)
 
895
          set $etp_ref_1_nump = &((Uint32 *) $etp_ref_1_p->data)[0]
 
896
        end
 
897
      end
 
898
      if $etp_ref_1_error
 
899
        printf "#InternalRefError<%#x>", ($arg0)
 
900
      else
 
901
        printf "#Ref<0"
879
902
        set $etp_ref_1_i--
 
903
        while $etp_ref_1_i >= 0
 
904
          printf ".%u", (unsigned) $etp_ref_1_nump[$etp_ref_1_i]
 
905
          set $etp_ref_1_i--
 
906
        end
 
907
        printf ">"
880
908
      end
881
 
      printf ">"
882
909
    end
883
910
  end
884
911
end
898
925
      printf "#NotExternalRef<%#x>", $etp_extref_1->header
899
926
    else
900
927
      ## External ref
901
 
      set $etp_extref_1_i = ($etp_extref_1_p->header >> 6)
 
928
      set $etp_extref_1_nump = (Uint32 *) 0
 
929
      set $etp_extref_1_error = 0
 
930
      set $etp_extref_1_i = (int) ($etp_extref_1_p->header >> 6)
902
931
      set $etp_extref_1_np = $etp_extref_1_p->node
903
932
      set $etp_extref_1_creation = $etp_extref_1_np->creation
904
933
      set $etp_extref_1_dep = $etp_extref_1_np->dist_entry
905
934
      set $etp_extref_1_node = $etp_extref_1_np->sysname
906
 
      if ($etp_extref_1_node & 0x3f) != 0xb \
907
 
         || $etp_extref_1_i < 2
 
935
      if ($etp_extref_1_node & 0x3f) != 0xb || $etp_extref_1_i < 3
908
936
        # Node should be an atom
 
937
        set $etp_extref_1_error = 1
 
938
      else
 
939
        ## $etp_extref_1_i now equals data (Uint) words
 
940
        set $etp_extref_1_i -= 2
 
941
        if $etp_arch64
 
942
          if ((((int) ((Uint32 *) $etp_extref_1_p->data)[0]) + 1) \
 
943
              > (2 * $etp_extref_1_i))
 
944
            set $etp_extref_1_error = 1
 
945
          else
 
946
            set $etp_extref_1_nump = &((Uint32 *) $etp_extref_1_p->data)[1]
 
947
            set $etp_extref_1_i = (int) ((Uint32 *) $etp_extref_1_p->data)[0]
 
948
          end
 
949
        else
 
950
            set $etp_extref_1_nump = &((Uint32 *) $etp_extref_1_p->data)[0]
 
951
        end
 
952
        ## $etp_extref_1_i now equals no of ref num (Uint32) words
 
953
        if !$etp_extref_1_error
 
954
          if $etp_extref_1_dep == erts_this_dist_entry
 
955
            printf "#Ref<0:"
 
956
          else
 
957
            printf "#Ref<%u:", $etp_extref_1_node>>6
 
958
          end
 
959
          etp-atom-1 ($etp_extref_1_node)
 
960
          printf "/%u", $etp_extref_1_creation
 
961
        end
 
962
      end
 
963
      if $etp_extref_1_error
909
964
        printf "#ExternalRefError<%#x>", ($arg0)
910
965
      else
911
 
        if $etp_extref_1_dep == erts_this_dist_entry
912
 
          printf "#Ref<0:"
913
 
        else
914
 
          printf "#Ref<%u:", $etp_extref_1_node>>6
915
 
        end
916
 
        etp-atom-1 ($etp_extref_1_node)
917
 
        printf "/%u", $etp_extref_1_creation
918
 
        set $etp_extref_1_i -= 2
919
 
        while $etp_extref_1_i > 0
 
966
        set $etp_extref_1_i--
 
967
        while $etp_extref_1_i >= 0
 
968
          printf ".%u", (unsigned) $etp_extref_1_nump[$etp_extref_1_i]
920
969
          set $etp_extref_1_i--
921
 
          printf ".%lu", \
922
 
            (unsigned long)$etp_extref_1_p->data[$etp_extref_1_i]
923
970
        end
924
971
        printf ">"
925
972
      end
1911
1958
#
1912
1959
 
1913
1960
define etp-init
 
1961
  set $etp_arch64 = (sizeof(void *) == 8)
 
1962
  if $etp_arch64
 
1963
    set $etp_nil = 0xfffffffffffffffb
 
1964
  else
 
1965
    set $etp_nil = 0xfffffffb
 
1966
  end
1914
1967
  set $etp_flat = 0
1915
 
  set $etp_nil = 0xfffffffb
1916
1968
  set $etp_chart_id = 0
1917
1969
  set $etp_chart = 0
1918
1970