Seite 1 von 3
Probleme mit jaPBe und Debugger
Verfasst: 25.05.2009 11:47
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
Verfasst: 25.05.2009 11:54
von Fluid Byte
Alter, wie oft noch? Code bitte!

Verfasst: 25.05.2009 13:07
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!
Verfasst: 25.05.2009 13:20
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
Verfasst: 25.05.2009 13:28
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.
Verfasst: 25.05.2009 13:34
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>
Verfasst: 25.05.2009 14:42
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.
Verfasst: 25.05.2009 14:43
von Kaeru Gaman
egal, dann eben nicht explicit, aber trotzdem bergamo...

Verfasst: 25.05.2009 14:49
von haggi
und was sagt uns das jetzt, wenn das bergano ist? gibts da probleme? alternativen etc.? gruß
Verfasst: 25.05.2009 14:57
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...