Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4424558

TTY: jdb does not show source line when .java file is large

XMLWordPrintable

    • beta2
    • sparc
    • solaris_2.6
    • Not verified



      Name: tb29552 Date: 03/12/2001


      java version "1.3.0"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
      Java HotSpot(TM) Client VM (build 1.3.0, mixed mode)


      When I try to debug a class which has more than 100000 lines in its
      source file (I suspect it can happen when the lines > 64K), jdb stops
      at the correct line specified in a breakpoint, but shows no source. 'where'
      command shows the stack correctly but 'list' command produces following
      error:

      main[1] list
      [JDI: Sending Command(id=3085) JDWP.ReferenceType.SourceFile]
      [JDI: Sending: refType(ReferenceTypeImpl): ref=213]
      [JDI: Receiving Command(id=3085) JDWP.ReferenceType.SourceFile]
      [JDI: Receiving: sourceFile(String): HR11Plain.java]
      Internal exception:
      java.lang.IllegalArgumentException
              at com.sun.tools.example.debug.tty.Env.sourceLine(Env.java:202)
              at
      com.sun.tools.example.debug.tty.Commands.commandList(Commands.java:1190)
              at com.sun.tools.example.debug.tty.TTY.executeCommand(TTY.java:416)
              at com.sun.tools.example.debug.tty.TTY.<init>(TTY.java:625)
              at com.sun.tools.example.debug.tty.TTY.main(TTY.java:924)
      main[1]


      In the same file, when the breakpoint is set to a line below 64K, source code is
      shown just fine when the break point is hit. For example:

      com.lawson.sessionbean.law801.HR11Plain.initDataBeans(), line=399, bci=0
      [JDI: Sending Command(id=3144) JDWP.ReferenceType.SourceFile]
      [JDI: Sending: refType(ReferenceTypeImpl): ref=213]
      [JDI: Receiving Command(id=3144) JDWP.ReferenceType.SourceFile]
      [JDI: Receiving: sourceFile(String): HR11Plain.java]
        399 painstructPK = new PainstructPK();

      main[1] list
      395 protected transient PagrdiPK pagrdiPK;
      396 protected transient Pagrdi pagrdi;
      397
      398 protected void initDataBeans() throws java.sql.SQLException {
      399 => painstructPK = new PainstructPK();
      400 painstruct = new Painstruct(getSchema(),
      getConnection());
      401 pamedicalPK = new PamedicalPK();
      402 pamedical = new Pamedical(getSchema(), getConnection());
      403 empcommentPK = new EmpcommentPK();
      404 empcomment = new Empcomment(getSchema(),
      getConnection());
      main[1]

      This class is part of a very large set of packages and requires great deal
      of set up so it is not practical to send the whole source file.
      (Review ID: 118633)
      ======================================================================

            tbell Tim Bell
            tbell Tim Bell
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: