2016-06-14 35 views
9

Mam projekt COM DLL, i jestem w stanie debugować go (zatrzymaj w pułapkach) w Delphi 2007 i XE8.Delphi 10 Seattle i 10.1 Berlin nie mogą debugować COM DLL

Jednak wydaje się, że IDE nie może zatrzymać się w pułapce w Delphi 10 Seattle lub 10.1 Berlin.

Moje kroki debugowania:

  1. Zmień debugowania (i sprawdzić te opcje debugowania zaznaczone np Debug informacji).

  2. regsvr32 DLL projektu w ramach katalogu wyjściowego

  3. zapisu vbscript, który po prostu tworzy obiekt COM i wywołuje jego metodę w debugg ee ustawienie linii poleceń Run pomocą c:\windows\syswow64\cscript.exe przez 32-bitową lub 64-c:\windows\system32\cscript.exe bitów debugowania

  4. ustawić parametr wiersza uruchomić VBScript.

  5. ustawić punkt przerwania w wywołanej metodzie.

  6. F9 Hit

Oczekiwany: zatrzymać przy zerwaniu

w Delphi 2007 i XE8, wszystko jest OK, ale nie byłem w stanie zrobić to w Delphi Seattle czy Berlinie.

Co może się tu nie udać? Czy są jakieś ustawienia, które muszę włączyć/wyłączyć w celu debugowania biblioteki DLL COM w najnowszej wersji Delphi IDE?

+1

Dobre pytanie, ale nie tak łatwo odpowiedzieć. Może to być błąd. –

+1

Złóż raport z Embarcadero w [Portal jakości] (http://quality.embarcadero.com). –

Odpowiedz

1

Wygląda na to, że jest to problem z IDE. Podniosłem problem w JIRA: https://quality.embarcadero.com/browse/RSP-14964

W końcu znajduję obejście w moim przypadku.

Muszę nacisnąć F8 zamiast F9. W tym przypadku okno CPU zostanie wyskakujące z mieszanymi instrukcjami Pascal i Assembly, a jeśli naciśniesz F9, najprawdopodobniej zatrzyma się w punktach przerwania (jednak czasami zachodzą losowe zachowania). Mogę odtworzyć to tyle razy, ile chcę. Naciśnij klawisz F9 bezpośrednio nie zatrzymuje się w punktach przerwania, ale okno cscript.exe ma wyskakujące okno podczas debugowania.

Mój projekt to DLL COM o pojemności 300 KB.