Eclipse - Không thể cài đặt điểm dừng do thiếu thuộc tính số dòng


370

Tôi nhận được lỗi lạ này trong Eclipse khi cố gắng đặt điểm dừng.

Unable to insert breakpoint Absent Line Number Information

Tôi đánh dấu vào hộp kiểm từ các tùy chọn Trình biên dịch nhưng không gặp may.


bạn có thể thực hiện một javap -verbose trên tệp lớp và dán thông tin vào đây không? Xem nếu nó thực sự có một số dòng.
z -

3
Xin chào yx, tôi đã làm một javap trên lớp đó. Nó tạo ra các số dòng
chandrajeet

Thật kỳ lạ, tôi vừa gặp vấn đề này với plugin BlackBerry, Eclipse 3.5, không liên quan gì đến Tomcat. Và tôi cũng dừng lại ở các điểm dừng, ngoại trừ một trong số họ ... nếu tôi tìm thấy câu trả lời, tôi sẽ đăng.
Richard Le Mesurier

6
Đối với tôi đó là một sự giả tạo sai, tôi đã vô tình chế giễu lớp tôi đang kiểm tra. Có lẽ ai đó tìm thấy điều này có liên quan.
hipokito

1
@hipokito Bạn có thể giải thích ý nghĩa của việc chế nhạo một lớp học và làm thế nào để hoàn tác nó? Các giải pháp khác không làm việc cho tôi.
Amber

Câu trả lời:


227

Tôi đã có cùng một thông báo lỗi trong Eclipse 3.4.1, SUN JVM1.6.0_07 được kết nối với Tomcat 6.0 (chạy ở chế độ gỡ lỗi trên một máy khác, Sun JVM1.6.0_16, kết nối gỡ lỗi đã hoạt động chính xác).

Cửa sổ -> Tùy chọn -> Java -> Trình biên dịch -> Tạo tệp lớp: "đã thêm thuộc tính số dòng vào tệp lớp được tạo" đã được chọn. Tôi đã làm sạch, biên dịch lại. Tôi đã bỏ chọn nó, biên dịch lại, kiểm tra nó, biên dịch lại. Tôi chắc chắn rằng dự án đã sử dụng các thiết lập toàn cầu. Vẫn là tin nhắn tương tự.

Tôi chuyển sang xây dựng kiến, sử dụng

<javac srcdir="./src/java" destdir="./bin" debug="true">

Tuy nhiên, cùng một thông điệp.

Tôi đã không tìm hiểu điều gì đã gây ra tin nhắn này và tại sao nó sẽ không biến mất. Mặc dù nó dường như có liên quan đến phiên gỡ lỗi Tomcat đang chạy: khi bị ngắt kết nối, biên dịch lại giải quyết vấn đề. Nhưng khi kết nối trình gỡ lỗi với Tomcat hoặc thiết lập các điểm dừng mới trong phiên gỡ lỗi được kết nối, nó lại xuất hiện.

Tuy nhiên, hóa ra thông báo đã sai : Tôi thực sự có thể gỡ lỗi và thiết lập các điểm dừng, cả trước và trong khi gỡ lỗi ( javap -l cũng hiển thị số dòng). Vì vậy, bỏ qua nó :)


31
Ở trên không làm việc cho tôi. Tôi đã phải bấm vào biểu tượng 'Xóa tất cả các Điểm dừng' trong khung nhìn Eclipse> Điểm dừng, sau đó thêm lại các điểm dừng. Điều đó đã làm việc.
Vik David

3
Tôi đã đóng tất cả các dự án khác, loại bỏ tất cả các điểm dừng, thực hiện một thay đổi ngẫu nhiên trong tệp, làm sạch dự án, giới thiệu lại điểm dừng. Điều đó làm việc cho tôi
Ali

4
Thêm debug="true"vào javacnhiệm vụ của antkịch bản xây dựng làm việc.
Justin Skiles

Câu trả lời này vẫn hợp lệ cho việc cài đặt Eclipse Kepler của tôi chạy trên windows 8 64 bit với Java 7.
Magnilex

1
"Hóa ra tin nhắn đã sai ..." - điều này nên được nhấn mạnh quá mức một cách lố bịch. Ngay cả sau khi đọc nó, tôi đã không hiểu những gì bạn đang nói. Cân nhắc chuyển toàn bộ câu trả lời của bạn xuống phía dưới và ở trên cùng trong hộp in đậm lớn nói điều gì đó như "Có khả năng tin nhắn này không có ý nghĩa gì - hãy thử nhấp vào đừng làm phiền tôi và xem bạn có thể không vẫn gỡ lỗi ".
Bane

105
  1. Trong menu nhật thực, đi đến Window-> Preferences-> Java-> Compiler
  2. Bỏ đánh dấu hộp kiểm "Thêm thuộc tính số dòng ..."
  3. Nhấp vào Áp dụng -> Có
  4. Đánh dấu vào hộp kiểm "Thêm thuộc tính số dòng ..."
  5. Áp dụng một lần nữa.
  6. Đi gỡ lỗi vui vẻ

1
Thủ thuật không hoạt động trong trường hợp của tôi
Yusuf Ibrahim

28

Điều này đã khắc phục vấn đề của tôi:

  1. Cửa sổ -> tùy chọn -> máy chủ -> môi trường thời gian chạy
  2. Mèo Tom Apache -> chỉnh sửa
  3. Chọn một JDK thay vì JRE

3
Điều này đã khắc phục sự cố của tôi (có phiên bản sai của jdk được chỉ định trong cấu hình ant). Nó đã khắc phục vấn đề, nhưng nhật thực VẪN đưa cho tôi thông báo lỗi. Vì vậy, hãy chắc chắn thực sự trải qua và cố gắng gỡ lỗi mã của bạn sau khi bạn thực hiện thay đổi này - đừng để thông báo lỗi làm bạn thất vọng.
Paul

Ngay cả ứng dụng của bạn không phải là web, giải pháp vẫn ổn, bằng cách Installed JREsmặc định là JDKthay vìJRE
ahmednabil88

Tôi biết quy tắc, nhưng có rất nhiều câu trả lời ở đây. Cái này, hoạt động với tôi vào tháng 11 năm 2019 Nhưng tôi cũng thay đổi sự tăng cường thời gian chạy chính, nó giải quyết vấn đề 100%.
Alvargon

19

Đối với các vấn đề liên quan đến Spring, xem xét rằng trong một số trường hợp, nó tạo ra các lớp "không có số dòng"; ví dụ một @Servicelớp chú thích không có giao diện, thêm giao diện và bạn có thể gỡ lỗi. xem ở đây cho một ví dụ đầy đủ.

@Service("SkillService")
public class TestServiceWithoutInterface {
   public void doSomething() {
      System.out.println("Hello TestServiceWithoutInterface");
   }
}

Dịch vụ trên sẽ có giao diện được tạo bởi lò xo gây ra "số dòng bị thiếu". Thêm một giao diện thực sự giải quyết vấn đề thế hệ:

public interface TestService {
    void doSomething();
}

@Service("SkillService")
public class TestServiceImpl implements TestService {
   public void doSomething() {
      System.out.println("Hello TestServiceImpl");
   }
}

1
"Thêm giao diện" nghĩa là gì? Nhập nó vào tập tin?
CamHart

1
Xin chào lời giải thích dứt khoát ở đây github.com/spring-projects/spring-ide/issues/
triệt

14

Tôi có câu trả lời cho vấn đề này từ phía BlackBerry SDK về mọi thứ: Vì một số lý do, bất kể tôi đã thay đổi các tùy chọn trong trình biên dịch bao nhiêu lần, tệp cài đặt cơ bản thực tế không thay đổi.

Hãy xem thư mục .sinstall của dự án của bạn cho một tệp có tên org.eclipse.jdt.core.prefs .

Trong đó bạn có thể sửa đổi các cài đặt bằng tay:

org.eclipse.jdt.core.compiler.debug.lineNumber=generate

chỉnh sửa: Hơn nữa, tôi đã nhận thấy rằng đôi khi tôi có thể bỏ qua cảnh báo mà Eclipse đưa ra và nó vẫn sẽ dừng ở nơi bắt buộc ... người tò mò và người tò mò ... Tôi đặt điều này vào thùng những thứ chúng ta học để đối phó khi làm việc như dev.


8

Điều này làm việc cho tôi:

  1. Theo Window --> Preferences --> Java --> Compiler --> Classfile Generation, tất cả các tùy chọn phải được True.
  2. Được thực hiện debug="true"trong <javac>tác vụ build.xml .
  3. Triển khai ứng dụng trong tomcat bởi cuộc chiến do kiến ​​tạo ra
  4. Đã khởi động lại Tomcat trong Debugchế độ

7

Không biết điều này có còn phù hợp không, có lẽ một thủy thủ khác sẽ thấy điều này hữu ích.

Thông báo xuất hiện khi một tệp có tệp lớp được biên dịch các cờ gỡ lỗi bị tắt.

Trong nhật thực, bạn có thể bật nó lên bằng các tùy chọn được đề cập ở trên,

Cửa sổ -> Tùy chọn -> Java -> Trình biên dịch -> Tạo tệp lớp: "thêm thuộc tính số dòng vào tệp lớp được tạo"

Nhưng nếu bạn có một tệp jar, thì bạn sẽ nhận được đầu ra được biên dịch. Không có cách dễ dàng để khắc phục vấn đề này.

Nếu bạn có quyền truy cập vào nguồn và sử dụng ant để lấy tệp jar, bạn có thể sửa đổi tác vụ ant như sau.

  <javac  destdir="${build.destDir}" srcdir="${build.srcDir}" source="1.6" fork="true" target="${javac.target}" debug="on" debuglevel="lines,vars,source" deprecation="on" memoryInitialSize="512m" memoryMaximumSize="1024m" optimize="true"   >

Chúc mừng gỡ lỗi ..

tham khảo: http://doc.sumy.ua/prog/Java/javanut/ch16_04.htm


6

Tôi đã thử hầu hết mọi giải pháp ở đây và không gặp may mắn. Bạn đã thử nhấp vào "Đừng nói với tôi một lần nữa"? Sau khi làm như vậy tôi khởi động lại chương trình của mình và tất cả đều ổn. Nhật thực đánh vào điểm dừng của tôi như thể không có gì sai.

Nguyên nhân sâu xa đối với tôi là Eclipse đã cố gắng thiết lập gỡ lỗi cho các đối tượng proxy Spring CGLIB được tạo tự động. Trừ khi bạn cần gỡ lỗi một cái gì đó ở cấp độ đó, bạn nên bỏ qua vấn đề.


5

Sẽ rất hữu ích nếu bạn đã chỉ ra phiên bản nhật thực mà bạn đang sử dụng và công nghệ (ví dụ Java JDT hoặc AJDT cho Aspect Java hoặc C ++ CDT), chỉ để đảm bảo.

Về phía Java, tôi cho rằng "Đã đánh dấu hộp kiểm từ các tùy chọn Trình biên dịch" đề cập đến điều này

Trong " Window --> Preferences --> Java --> Compiler --> Classfile Generation", tất cả các Class filetùy chọn tạo '' được đặt thành True:

  • (1) thêm thuộc tính biến,
  • (2) số phụ,
  • (3) thêm tên tệp nguồn,
  • (4) bảo tồn các biến cục bộ không sử dụng.

Dự án của bạn có được kiểm tra chỉ ở cấp độ toàn cầu (Windows Preferences) hoặc ở cấp độ cụ thể của dự án không?

Và bạn có chắc là lớp đã mở (trên đó bạn cố gắng đặt điểm dừng):

  • là một trong những nguồn của bạn (và không đến từ thư viện bên thứ ba)
  • là một .java, không phải là một .class?

Cố gắng làm sạch mọi thứ và xây dựng lại tất cả, kiểm tra các xung đột jar tiềm năng .


Xin chào VonC, tôi đang dùng Eclpise Ganymede, Java 1.6 Có, tôi có các cài đặt trên toàn cầu. Tôi đang cố gắng đặt nó trên mã Java của riêng mình được viết, vì vậy, tôi có các tệp .java &. Class. Và tôi đã làm một javap trên lớp đó. Nó tạo ra các số dòng
chandrajeet

@ Vendrajeet nếu bạn có các cài đặt đó được đặt trên toàn cầu, tôi cho rằng bạn đã kiểm tra dự án của bạn không ghi đè lên chúng bằng các cài đặt cụ thể của dự án? Nếu không, điều duy nhất tôi thấy ngay bây giờ là đặt các điểm dừng trên. Class thay vì .java ...
VonC

4

Tôi đã gặp vấn đề này trong khi cố gắng khởi động Tomcat ở chế độ gỡ lỗi từ Eclipse. Tôi đã có một tệp xây dựng ANT chăm sóc việc biên dịch và triển khai. Sau khi đặt cờ gỡ lỗi thành true (như đã đề cập trong các câu trả lời khác) và triển khai lại ứng dụng, nó hoạt động tốt:

<javac srcdir="./src/java" destdir="./bin" debug="true">

GHI CHÚ: nếu bạn vừa thêm cờ gỡ lỗi và biên dịch lại, bạn vẫn cần phải triển khai lại ứng dụng của mình với máy chủ vì đây là nơi Eclipse đang gỡ lỗi các tệp lớp. Rất rõ ràng nhưng dễ dàng dành một giờ hoặc lâu hơn gãi đầu và tự hỏi tại sao nó không hoạt động (tin tôi).


4

cố gắng thay đổi jrebạn sử dụng . Thay vào đó, jretrong thư mục JDKthay thế.


4

Vì tôi đã cài đặt 6 phiên bản Java khác nhau, tôi đã phải thay đổi tuân thủ JDK mặc định của mình để phù hợp với phiên bản Java mà tôi muốn sử dụng. Theo mặc định, Eclipse có mức tuân thủ trình biên dịch được đặt thành Java 1.7 khi mọi thứ được xây dựng / biên dịch bằng Java 1.6.

Vì vậy, tất cả những gì tôi đã làm là

  1. Trong menu nhật thực, đi đến Window-> Preferences-> Java-> Compiler
  2. Theo Tuân thủ JDK, tôi đã thay đổi mức độ tuân thủ Trình biên dịch từ 1.7 thành 1.6

Bây giờ Eclipse không phàn nàn về "Không thể chèn thông tin Số dòng vắng mặt điểm dừng" nữa và các điểm dừng gỡ lỗi thực sự hoạt động !!!


4

Nếu không có gì khác hoạt động, mở phối cảnh gỡ lỗi, xóa tất cả các điểm dừng hiện có và sau đó đặt lại chúng.


3

Điều này được giải thích chi tiết ở đây:

https://github.com/spring-projects/spring-ide/issues/78

Chỉ để tham khảo trong tương lai, đây là phần có liên quan của câu trả lời (bỏ qua thực tế đề cập đến ứng dụng Spring Boot, hành vi tương tự đối với nhiều trường hợp khác):

Bất cứ khi nào bạn đặt điểm dừng trong Eclipse / STS, IDE sẽ cố gắng đặt điểm dừng trong VM nếu bạn khởi chạy một ứng dụng. Đó là những gì xảy ra trong trường hợp của bạn khi bạn chạy ứng dụng khởi động ở chế độ gỡ lỗi.

Đối với mỗi lớp được tải vào JVM, IDE sẽ kiểm tra xem nó có cần đặt điểm dừng hay không. Nếu nó quyết định đặt điểm dừng, thì sẽ cố gắng làm điều đó (sử dụng thông tin từ định nghĩa điểm dừng trong IDE, bao gồm số dòng của nó, vì bạn thường đặt điểm dừng dòng trên tệp nguồn tại một dòng nhất định).

Quyết định này (có đặt điểm dừng trên một lớp đã tải hay không) kiểm tra các loại mà bạn đặt điểm dừng trên, bao quanh các loại và các lớp bên trong. Điều này đảm bảo rằng các điểm dừng cho các lớp bên trong (ngay cả các lớp bên trong ẩn danh) được đặt thành JVM (và không bị bỏ qua).

Spring Boot tạo một lớp bên trong cho bộ điều khiển của bạn khi chạy (đây là lớp bên trong được tạo CGLIB xuất hiện trong thông báo lỗi). Khi JVM tải lớp đó, nó cố gắng đặt điểm dừng số dòng của loại kèm theo (đối với lớp bên trong này). Vì lớp bên trong được tạo không có bất kỳ thông tin số dòng nào (không cần phải có thông tin số dòng), nên việc đặt điểm dừng không thành công cho lớp bên trong này với thông báo lỗi được đề cập.

Khi IDE tải loại kèm theo (chính lớp trình điều khiển của bạn), nó cũng cố gắng đặt điểm dừng dòng và thành công với điều đó. Điều này được hiển thị với điểm đánh dấu trên điểm đánh dấu.

Do đó, bạn có thể yên tâm bỏ qua thông báo lỗi xuất hiện. Để tránh thông báo lỗi này xuất hiện, bạn có thể truy cập tùy chọn (Java -> Gỡ lỗi) và tắt "Cảnh báo khi không thể cài đặt điểm dừng do thiếu thuộc tính số dòng".


2

Tình hình của tôi cũng tương tự:

  • Tôi đã gỡ lỗi một bài kiểm tra JUnit
  • Tôi đã sử dụng Mockito để tạo ra một điệp viên, như trong spyTask = spy(new Task())
  • Tôi đặt điểm dừng bên trong lớp mà tôi đang theo dõi (bên trong Task.java)

Điểm dừng này tạo ra lỗi trong câu hỏi, mỗi khi tôi chạy Debug As... > JUnit Test

Để giải quyết vấn đề, tôi đã chuyển Breakpoint 'lên' vào thử nghiệm thực tế (bên trong TaskTest.java). Khi việc thực thi dừng lại, tôi đã thêm điểm dừng trở lại nơi tôi đã có nó, ban đầu (bên trong Task.java).

Tôi vẫn gặp lỗi tương tự nhưng sau khi nhấp vào "ok", điểm dừng hoạt động tốt.

Hy vọng rằng sẽ giúp được ai đó,

-male


Cảm ơn đã chia sẻ điều này, tôi đã có cùng một vấn đề. Các giải pháp đã không làm việc cho tôi mặc dù. Mặc dù tôi mới sử dụng Mockito và tôi có thể gặp một số vấn đề khác khiến cho đối tượng bị chế giễu của tôi thực sự bị gọi. Nhưng tôi vẫn đánh giá cao việc bạn đã đăng @gmale này!
Michael Osofsky

2

Tôi gặp vấn đề tương tự khi tôi thực hiện trên máy chủ cầu cảng và biên dịch tệp .war mới của ANT. Bạn nên tạo cùng một phiên bản của trình biên dịch jdk / jre và đường dẫn xây dựng (ví dụ jdk 1.6v33, jdk 1.7, ....) sau khi bạn phải đặt Trình biên dịch Java như đã viết trước đó.

Tôi đã làm mọi thứ và vẫn không làm việc. Giải pháp là xóa các tệp. Class đã được biên dịch và mục tiêu của tệp chiến tranh được tạo và bây giờ nó đang hoạt động :)


2

Nhận được tin nhắn này với Spring AOP (dường như đến từ thư viện CGLIB). Nhấp vào Bỏ qua dường như hoạt động tốt, tôi vẫn có thể gỡ lỗi.


2

Tôi tìm thấy một lý do khác cho tin nhắn này. Tôi đã lập trình Scala. Giải pháp là:

  1. Mở Run -> Cấu hình gỡ lỗi
  2. Trong tab Chính, ở phía dưới, bên cạnh các nút "Áp dụng" và "Hoàn nguyên", có một văn bản cho biết bạn đang sử dụng Trình khởi chạy nào và bên cạnh đó, có một siêu liên kết có nội dung "Chọn mục khác". Đây là một yếu tố UI lạ, thoạt nhìn không thể hành động.
  3. Sử dụng liên kết "Chọn khác" và chọn "Trình khởi chạy ứng dụng Scala (trình gỡ lỗi mới)". Một cái khác dường như không hoạt động với Scala.

Bây giờ việc gỡ lỗi sẽ hoạt động. Lưu ý rằng tôi đã cài đặt plugin Scala IDE, tùy chọn này có thể không khả dụng nếu bạn không có nó.


2

Những điều trên không làm việc cho tôi. Giải pháp dưới đây cuối cùng đã làm việc. Cấu hình gỡ lỗi -> Classpath -> Mục nhập người dùng -> (Thêm thư mục src của dự án bạn muốn gỡ lỗi.)


1

Tôi đã gặp vấn đề tương tự khi gỡ lỗi một WAR (được xây dựng từ nhiều tạo phẩm của dự án Eclipse) được triển khai cho Tomcat.

Tôi đang xây dựng mọi thứ bằng cách sử dụng tập lệnh xây dựng ANT. Nếu đây là những gì bạn đang làm, hãy đảm bảo rằng cờ debug = true được đặt trên mỗi tác vụ ant javac bạn có. Đây là vấn đề duy nhất của tôi - Tôi hy vọng nó sẽ giúp vấn đề của bạn!


1

Tôi đã có cùng một lỗi với JBoss 7.1 .. Và tôi cũng làm như Zefiro. Chỉ cần bỏ qua lỗi và tôi đã có thể đặt điểm dừng bình thường. Trong trường hợp của tôi, tôi đã xây dựng trình xây dựng kiến ​​nghĩ và đây là nhiệm vụ javac của tôi:

<javac
        srcdir="${src.dir}"
        destdir="${build.classes.dir}" 
        includeantruntime="false" 
        debug="${debug}"
        verbose="false"
        debuglevel="lines,vars,source"
        source="1.6"
        target="1.6">

        <!-- Sppressing warning for setting an older source without bootclasspath
             (see: https://blogs.oracle.com/darcy/entry/bootclasspath_older_source) -->
        <compilerarg value="-Xlint:-options"/>

        <classpath>
            <fileset dir="${lib.dir}" includes="*.jar" />
            <fileset dir="${jboss.lib.dir}" includes="**/*.jar" />
        </classpath>

    </javac>

1

Tôi có cùng một vấn đề, tôi đã dành rất nhiều thời gian để tìm kiếm giải pháp nhưng những giải pháp này không đáng tin, vì vậy tôi tự nghiên cứu tất cả các trường hợp, cuối cùng tôi phát hiện ra vấn đề đó là xung đột giữa các phiên bản JDK. Dưới đây là các bước để giải quyết vấn đề: 1. Xóa tất cả phiên bản JDK và JRE, chỉ giữ lại một phiên bản. 2. Đặt hệ thống JAVA_HOME và trình biên dịch java trong Eclipse là như nhau. Trong một số trường hợp, lỗi ở trên sẽ không biến mất, nhưng chúng tôi có thể chạy ở mô hình gỡ lỗi.


1

Khi tôi gặp lỗi tương tự khi tôi sử dụng Junit và Mockito, tôi đã quên thêm @PrepareForTest vào một lớp tĩnh.

Thêm mã dưới đây đã khắc phục vấn đề của tôi.

@PrepareForTest({XXXXX.class})

Không chắc đó là trường hợp tương tự.


1

Vấn đề của tôi là tôi đã có 2 JAR và tôi đã cố gắng ghi đè cái này với cái kia dựa trên thứ tự của nó trong Java Build Path => Order & Export tab trong Eclipse, bởi vì cái này là để gỡ lỗi và cái kia thì không (JAR gỡ lỗi là thứ tự đầu tiên). Khi tôi làm theo cách này, tôi phải tự đính kèm một nguồn.

Tôi đã thử xóa JAR không gỡ lỗi và đặt JAR gỡ lỗi trong thư mục \ WEB-INF \ lib \, dọn dẹp, xây dựng, v.v., và nó đã hoạt động. Lần này (đã loại bỏ nguồn đính kèm), nó sẽ tự động cho phép tôi điều hướng qua mã gỡ lỗi mà không phải đính kèm bất kỳ nguồn nào theo cách thủ công. Điểm dừng và gỡ lỗi cũng hoạt động.


Trong trường hợp bất cứ ai vẫn gặp sự cố, tôi cũng đã thử tất cả các giải pháp cụ thể được đề cập trong các câu trả lời khác:

  • Bỏ chọn, áp dụng và kiểm tra lại Add line number attributes...
  • Chỉnh sửa thủ công org.eclipse.jdt.core.prefsnhư được đề cập trong câu trả lời khác: https://stackoverflow.com/a/31588700/1599699
  • Đảm bảo JAR đã được tạo khi bật gỡ lỗi.
  • Thay đổi mức độ tuân thủ JDK từ 1.6 thành 1.7 (do đó phù hợp với JDK tôi đang sử dụng).

Tôi cũng đã tắt máy chủ thông thường (và đảm bảo java.exe thực sự bị đóng ...), xóa các thư mục \ build \ trong cả hai dự án, khởi động lại Eclipse với tham số -clean, tạo lại JAR gỡ lỗi, làm mới, làm sạch và xây dựng dự án với JAR gỡ lỗi trong đó, khởi động máy chủ ở chế độ gỡ lỗi, xuất bản / dọn dẹp và ngắt điểm.


0

Tôi đã làm tất cả những gì được liệt kê ở trên trong khi biên dịch / xây dựng các lọ - vẫn có cùng một vấn đề.

Cuối cùng, các thay đổi jvmarg được liệt kê bên dưới trong khi khởi động máy chủ là điều cuối cùng đã làm việc cho tôi:

1) Đã xóa / Nhận xét một loạt các jvm args liên quan đến javaagent và boot classpath.

2) Đã bật / hủy nhận xét dòng sau:

Sau đó, khi tôi khởi động máy chủ, tôi có thể đạt điểm dừng của mình. Tôi nghi ngờ rằng javaagent bằng cách nào đó đã can thiệp vào khả năng phát hiện số dòng của Eclipse.


0

Kiểm tra / làm như sau:

1) Trong "Cửa sổ -> Tùy chọn -> Java -> Trình biên dịch -> Tạo tệp lớp", tất cả các tùy chọn phải là True:

(1) Add variable attributes...
(2) Add line number attributes...
(3) Add source file name...
(4) Preserve unused (never read) local variables

2) Trong thư mục .sinstall của dự án của bạn, hãy tìm một tệp có tên org.eclipse.jdt.core.prefs. Xác minh hoặc đặt org.eclipse.jdt.core.compiler.debug.lineNumber = tạo

3) Nếu cửa sổ lỗi vẫn xuất hiện, nhấp vào hộp kiểm để không hiển thị thông báo lỗi.

4) Làm sạch và xây dựng dự án. Bắt đầu gỡ lỗi.

Thông thường cửa sổ lỗi không được hiển thị nữa và thông tin gỡ lỗi được hiển thị chính xác.


0

Tôi cũng gặp vấn đề này. Tôi đang sử dụng một kịch bản xây dựng kiến. Tôi đang làm việc trên một ứng dụng cũ nên tôi đang sử dụng phiên bản jdk 1.4.2. Điều này được sử dụng để làm việc vì vậy tôi bắt đầu tìm kiếm xung quanh. Tôi nhận thấy rằng trong cấu hình Gỡ lỗi trên tab JRE, phiên bản Java đã được đặt thành 1.7. Khi tôi thay đổi nó trở lại 1.4, nó hoạt động.

Tôi hi vọng cái này giúp được.


0

Tôi đã cố gắng gỡ lỗi trình quản lý ghi nhật ký và cần thay đổi jre thành jdk và sau đó chọn jdk này trong tab "chính", "Môi trường chạy thi hành Java" | "thời gian chạy JRE" của cấu hình gỡ lỗi thì tất cả đều ổn.


0

Tôi đã thấy vấn đề này khi tôi chú thích một lớp với @ManagedBean (javax.annotation.ManagedBean). Thông báo cảnh báo xuất hiện khi chạy ứng dụng mới được tuân thủ trên JBoss EAP 6.2.0. Bỏ qua nó và chạy dù sao cũng không giúp được gì - điểm dừng không bao giờ đạt được.

Tôi đã gọi bean đó bằng EL trong trang JSF. Bây giờ ... có thể là @ManagedBean không tốt cho điều đó (tôi mới biết về CDI). Khi tôi thay đổi chú thích của mình thành @Model, bean của tôi đã thực thi nhưng cảnh báo điểm dừng cũng biến mất và tôi đạt điểm dừng như mong đợi.

Tóm lại, nó chắc chắn trông giống như chú thích @ManagedBean làm rối tung các số dòng, bất kể đó có phải là chú thích sai sử dụng hay không.


0

Hãy chắc chắn rằng dự án trong đó lớp chính của thời gian chạy là cùng một dự án trong đó lớp bạn có các điểm dừng . Nếu không, hãy đảm bảo rằng cả hai dự án đều nằm trong đường dẫn cấu hình đang chạy và xuất hiện trước bất kỳ thư mục và thư mục lớp nào.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.