Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
servis uygulamasında debug nasil yapilir ?
#1
Merhaba

Delphi 10.3 üzerinde yazılan Windows Servis uygulamasını debug edebilmenin bir yolu varmı dır.

Teşekkürler
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#2
(13-01-2021, Saat: 17:21)adelphiforumz Adlı Kullanıcıdan Alıntı: Merhaba

Delphi 10.3 üzerinde yazılan Windows Servis uygulamasını debug edebilmenin bir yolu varmı dır.

Teşekkürler

BEN BU ŞEKİLDE YAPIYORUM

program PCPOS_Send_Services;

uses
Vcl.SvcMgr,System.SysUtils;

{$R *.RES}

begin
{$ifdef DEBUG}
Try
 If Not Application.DelayInitialize Or Application.Installing Then
Application.Initialize;
Application.CreateForm(TPCPOS_Send_Service, PCPOS_Send_Service);
Application.CreateForm(Tdm, dm);
application.Run;
 ReadLn;
Except
 On E: Exception Do
  Begin
   Writeln(E.ClassName, ': ', E.Message);
   WriteLn('Çıkış İçin Enter Basın.');
   ReadLn;
  End;
End;
{$else}
if not Application.DelayInitialize or Application.Installing then
  Application.Initialize;
Application.CreateForm(TPCPOS_Send_Service, PCPOS_Send_Service);
Application.CreateForm(Tdm, dm);
Application.Run;
 {$endif}
end.
Cevapla
#3
(13-01-2021, Saat: 17:21)adelphiforumz Adlı Kullanıcıdan Alıntı: Merhaba

Delphi 10.3 üzerinde yazılan Windows Servis uygulamasını debug edebilmenin bir yolu varmı dır.

Teşekkürler

LogMessage'ı kullanıp Windows Olay Günlüğü'nden kontrol edebilirsiniz.
There's no place like 127.0.0.1
WWW
Cevapla
#4
@SimaWB Hocam
LogMessage yapısını kullanıyorum fakat takibi zor oluyor biraz onun için direkt normal uygulama gibi debug etme varmı diye merak etmiştim.
Teşekkürler

@elixir84 Hocam
Yazdığınız koda baktığımda ifDef blokları arasında fark olarak yalnızca ReadLine satırları göze çarpıyor.
Bu yazdığınız şekilde nasıl bir debug işlemi gerçekleştiriyorsunuz.
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#5
Servisi, servis olarak çalışırken debug etmek için kullanılabilecek yöntemlerden yukarıda bahsedildi.

Servisde yapılması gereken işlemlerin foksiyon testi için, üzerinde görsel bileşen bulunmayan form uygulaması olarak bir kopyası hazırlanır. (Procedure, form isimleri, mümkünse unit içindeki sıralarıda aynı olacak şekilde).

Form uygulamasında gerekli debug işlemleri yapılır, işlem tamamsa form uygulaması unitindeki kodları kopyalayıp servis unitine yapıştırılıp derlenir. Smile
Cevapla
#6
Şurada konuyla ilgili bir paylaşım bulunuyor. :
https://stackoverflow.com/questions/2884...ith-delphi

Burada da Embarcadero nun konuyla ilgili dökümanı bulunuyor.
http://docwiki.embarcadero.com/RADStudio...plications
WWW
Cevapla
#7
Servisinizin debug klasörü altından install yapın servisi çalıştırmayın. Sonrasında delphiden projenizi debug olarak derleyin servisinizi windows servisler altından start edin. Delphide projeyi kapatmayın debug edeceğiniz yerlere break pointleri koyun sonra delphinin run menüsü altındaki attach to procces menüsünü kullanarak çalışan servisinizin adını bulun ve attach edin. Karşınıza ilk olarak cpu debug penceresi gelebilir onu kapatabilirsiniz. Servisiniz ilgili break pointe gelince duracak ve sizin ilerletmenizi bekletecektir.
Not: bazen servisler attach to procces menüsü altında görüntülenemeyebiliyor bunu aşmanın yoluda yukardaki işlemlere başlamadan önce delphiyi yönetici olarak çalıştırmaktır.

Kolay gelsin.
Cevapla
#8
Servis uygulaması hiç kullanma ihtiyacım olmadı. Çok basit bir uygulama yapmıştım. Oda belirli aralıklarla SQL işlemi yapıyordu.
Sizin sorun servis uygulamasının memory leak oluşturması mı? Telegram grububunda benzer soru görmüştüm. Bence birde asıl sorunuzu paylaşın belki yardımcı olabilecek arkadaşlar çıkabilir.
PostgreSQL - Linux - Delphi, Poliüretan
WWW
Cevapla
#9
@3ddark Hocam
yazdığım servis programı e-fatura işlemlerinde soap üzerinden db işlemleri gibi baya complex bir yapı içeriyor.
genelde logmessage sistemi ile parametrik olarak çalışma sırasında oluşan problemleri ve akışı takip ediyorum
Fakat bir sorun olduğunda normal debug eder gibi servis çalıştırılabilirmi onu merak etmiştim
genel olarak servisin çalışmasında bir sorun yaşamıyorum şimdilik.

@tuna Hocam
detaylı açıklamanız için teşekkür ederim.
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#10
(13-01-2021, Saat: 17:54)adelphiforumz Adlı Kullanıcıdan Alıntı: @SimaWB  Hocam
LogMessage yapısını kullanıyorum fakat takibi zor oluyor biraz onun için direkt normal uygulama gibi debug etme varmı diye merak etmiştim.
Teşekkürler

@elixir84 Hocam
Yazdığınız koda baktığımda ifDef blokları arasında fark olarak yalnızca ReadLine satırları göze çarpıyor.
Bu yazdığınız şekilde nasıl bir debug işlemi gerçekleştiriyorsunuz.

Çok özür dilerim eksik yazmışım. 

{$ifdef DEBUG}

  {$APPTYPE CONSOLE}
{$endif}


program PCPOS_Send_Services;

{$ifdef DEBUG}
  {$APPTYPE CONSOLE}
{$endif}

uses
  Vcl.SvcMgr,System.SysUtils,
  ana in 'ana.pas' {PCPOS_Send_Service: TService},
  Unit_MyThread in 'Unit_MyThread.pas',
  paket in 'paket.pas',
  dmpas in 'dmpas.pas' {dm: TDataModule};

{$R *.RES}

begin
  {$ifdef DEBUG}
 Try
  If Not Application.DelayInitialize Or Application.Installing Then
  Application.Initialize;
  Application.CreateForm(TPCPOS_Send_Service, PCPOS_Send_Service);
  Application.CreateForm(Tdm, dm);
  application.Run;
   ReadLn;
  Except
   On E: Exception Do
    Begin
     Writeln(E.ClassName, ': ', E.Message);
     WriteLn('Çıkış İçin Enter Basın.');
     ReadLn;
    End;
  End;
  {$else}
  if not Application.DelayInitialize or Application.Installing then
    Application.Initialize;
  Application.CreateForm(TPCPOS_Send_Service, PCPOS_Send_Service);
  Application.CreateForm(Tdm, dm);
  Application.Run;
   {$endif}
end.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi BluetoothLE Nasıl Kullanılır? batuhan53 1 170 26-12-2020, Saat: 22:22
Son Yorum: 41linea41
  Resmin efectli geçiş ile gelmesi nasıl yapılır? Cyb3r 29 1.656 26-12-2020, Saat: 21:08
Son Yorum: Cyb3r
  "Görev çubuğna sabitle" işini kod yazarak nasıl yaparız? bibilen 2 223 21-12-2020, Saat: 19:55
Son Yorum: bibilen
Question Delphi 7 'de Microsoft EDGE nasıl kullanılır ? SenayAkgun 2 302 02-12-2020, Saat: 11:52
Son Yorum: SenayAkgun
  Bu c++ struct nasıl delphi olarak çevirebilirim. seci20 4 512 24-11-2020, Saat: 09:00
Son Yorum: pro_imaj



Konuyu Okuyanlar: 1 Ziyaretçi