Probleme mit jaPBe und Debugger

Anfängerfragen zum Programmieren mit PureBasic.
haggi
Beiträge: 77
Registriert: 04.01.2007 21:54

Probleme mit jaPBe und Debugger

Beitrag von haggi »

Hallo leute, hab ein oder zwei fehler festgestellt. konkret geht es um readatastring und cdrecord.

ich hab keine ausgabe wenn ich unter japbe mit dem debugger mir die daten ausgeben lasse. ich bekomme teilweise nur leere zeilen. wenn ich dass ganze über den pure basic editor mache, funktioniert es. wenn ich den externen debugger einsetze ist das problem das selbe wie bei japbe weshalb es wohl ein problem vom externen debugger ist. beim internen ist es so, dass es meistens geht und manchmal nicht. beim externen ist es so, dass es mal ne zeit funktioniert hat und jetzt nicht mehr. der code wurde nur umgestellt, und nichts herausgenommen etc.

beim normalen pb editor (mit debug) gibt es dagegen n problem das er immer wieder probleme bringt, betreffs arbeitsspeicher access, dass welches er beim externen debugger mit japbe nicht bringt. gruß haggi


Überschrift aussagekräftiger gestaltet - Kaeru fecit
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Alter, wie oft noch? Code bitte! :freak:
Windows 10 Pro, 64-Bit / Outtakes | Derek
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

worum gehts eigentlich?

debugger-probleme mit jaPBe?

und um welche Befehle?

also, "readatastring" ist keiner, "cdrecord" auch nicht.

es ist nervig, dauernd rumraten zu müssen, was Kollegen meinen.

Bitte anschauen!
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
haggi
Beiträge: 77
Registriert: 04.01.2007 21:54

Beitrag von haggi »

He leutz sorry hab den code vorher vergessen, und das readdatastring ist natürlich readprogramdata :-) hoffe die 2 routinen reichen euch :-) ansonsten kurz melden :-)

hier die 2 proceduren :-)

Code: Alles auswählen


Procedure checkdisk(dummy.l)
  ; Überprüft ob die cd oder dvd ller sind! wenn diese leer ist wird der thread beendet!
  globals\programm = globals\Brennenginepfad + globals\Brennendineexe.s
  globals\parameter = "dev=1,0,0 -minfo"
  globals\sofortverarbeitung = "nein"
 ClearList(templist())
  befehlausfuehren(dummy.l)
 
 ResetList(templist())
  ;ClearList(Laufwerke())

  For i = 1 To ListSize(templist())
    NextElement(templist())
    If FindString(templist(),"session status:",1) <>0 
      Debug templist()
      If FindString(templist(),"empty",1)<> 0
        globals\sessionleer = 1
        If globals\discleer = 1
          Goto exitsubcheckcd
        EndIf
        
      EndIf
    EndIf
    
    If FindString(templist(),"disk status:",1) <>0 
      Debug templist()
      If FindString(templist(),"empty",1)<> 0
        globals\discleer = 1
        If globals\sessionleer = 1
          Goto exitsubcheckcd
        EndIf
      EndIf
    EndIf  
    
    If FindString(templist(),"cannot load media with this drive!",1) <> 0
      Debug "kein medium eingelegt! "
      Goto exitsubcheckcd
    EndIf
    
    If FindString(templist(),"disk status:",1) <>0 
      Debug templist()
      If FindString(templist(),"complete",1)<> 0
        globals\programm = globals\Brennenginepfad + globals\Brennendineexe.s
        globals\parameter = "dev=1,0,0 -eject"
        globals\sofortverarbeitung = "nein"
        befehlausfuehren(dummy.l)
        Goto exitsubcheckcd
      EndIf
    EndIf
    
    
    If FindString(templist(),"session status:",1) <>0 
      Debug templist()
      If FindString(templist(),"complete",1)<> 0
        globals\programm = globals\Brennenginepfad + globals\Brennendineexe.s
        globals\parameter = "dev=1,0,0 -eject"
        globals\sofortverarbeitung = "nein"
        befehlausfuehren(dummy.l)
        Goto exitsubcheckcd
      EndIf
    EndIf    
    
  Next

  
  exitsubcheckcd:
  
  End
EndProcedure

Procedure befehlausfuehren(dummy.l)
  
  
  globals\Brennenginepfad = "C:\cdrtools\"
  globals\Brennendineexe = "cdrecord.exe"
  
  prgID = RunProgram(globals\programm , globals\parameter, "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Error|#PB_Program_Hide)
; prgID = RunProgram( "C:\cdrtools\cdrecord.exe" , "dev=1,0,0 -minfo" ,"", #PB_Program_Open|#PB_Program_Read|#PB_Program_Error|#PB_Program_Hide)
  If globals\sofortverarbeitung = "nein"
    ClearList(templist()) 
  EndIf
  If prgID  
    While ProgramRunning(prgID) <> 0
      If globals\sofortverarbeitung = "nein"
        ;Debug "keine sofortverarbeitung"
        AddElement(templist())
        globals\time = ElapsedMilliseconds()
     
          templist() = ReadProgramString(prgID) 
          Debug ReadProgramString(prgID) 
      Else
        globals\time = ElapsedMilliseconds()
        ;globals\direktausgabestring = ""
        globals\direktausgabestring = ReadProgramString(prgID)
        
        
      EndIf
    Wend
    ;  AddGadgetItem(1, -1, "Exitcode: " + Str(ProgramExitCode(prgID))  )
    Debug "Exitcode: " + Str(ProgramExitCode(prgID))
    KillProgram(prgID)
    CloseProgram(prgID)
    
  EndIf
EndProcedure

Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> und das readdatastring ist natürlich readprogramdata

oh ja, völlig selbstverständlich!


globals\Brennendineexe = "cdrecord.exe"
Endine? Bergamo?

... mit EnableExplicit wäre das nicht passiert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
haggi
Beiträge: 77
Registriert: 04.01.2007 21:54

Beitrag von haggi »

he, ne ist die schily-0.9 laut ausgabe cdrecord hier mal die ausgabe bei minfo hoffe dass reicht dir ja so kann das mit explizit passieren :-)
gruß

p.s. früher hat es aber witzigerweise funktioniert auch mit dem externen debugger :-)

Code: Alles auswählen

C:\cdrtools>cdrecord dev=1,0,0 -minfo
Cdrecord-ProDVD-ProBD-Clone 2.01.01a55 (i686-pc-cygwin) Copyright (C) 1995-2008
Jörg Schilling
scsidev: '1,0,0'
scsibus: 1 target: 0 lun: 0
Using libscg version 'schily-0.9'.
Device type    : Removable CD-ROM
Version        : 0
Response Format: 3
Capabilities   :
Vendor_info    : 'TSSTcorp'
Identifikation : 'CDDVDW SN-S083B '
Revision       : 'SB00'
Device seems to be: Generic mmc2 DVD-R/DVD-RW/DVD-RAM.
Using generic SCSI-3/mmc   CD-R/CD-RW driver (mmc_cdr).
Driver flags   : MMC-3 SWABAUDIO BURNFREE
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
Mounted media class:      CD
Mounted media type:       CD-R
Disk Is not erasable
data type:                standard
disk status:              complete
session status:           complete
BG format status:         none
first track:              1
number of sessions:       1
first track in last sess: 1
last track in last sess:  1
Disk Is not unrestricted
Disk type: CD-DA or CD-ROM
Disk id: 0x871838
last start of lead in: 716730
last start of lead out: 1166730

Track  Sess Type   Start Addr End Addr   Size
==============================================
    1     1 Data   0          1068       1069

Last session start address:         0
Last session leadout start address: 1069

C:\cdrtools>
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Kaeru Gaman hat geschrieben:> und das readdatastring ist natürlich readprogramdata

oh ja, völlig selbstverständlich!


globals\Brennendineexe = "cdrecord.exe"
Endine? Bergamo?

... mit EnableExplicit wäre das nicht passiert.
EnableExplicit ? Selbst wenn man sich da vertippt haette, wuerde der
compiler so oder so meckern.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

egal, dann eben nicht explicit, aber trotzdem bergamo... /:->
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
haggi
Beiträge: 77
Registriert: 04.01.2007 21:54

Beitrag von haggi »

und was sagt uns das jetzt, wenn das bergano ist? gibts da probleme? alternativen etc.? gruß
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

die probleme werden wohl nicht an bergamo liegen, aber falsch geschrieben ist's trotzdem.

da ich jaPBe nicht habe kann ich deine Aussage nicht überprüfen.
es lag nur in meinem Interesse, überhaupt mal deine Fragestellung nachvollziebar zu machen.

... debuggt er denn andere strings wie es sein soll?

... hat der string den du debuggen willst überhaupt einen Inhalt?
ermittel doch mal die länge und lass die ausgeben.


mal abgesehen davon, dass jaPBe kein internes Werkzeug von PureBasic ist, es also weiniger in die Bug-Sektion gehört...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten