Debugging (LibreOffice Basic): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 43: Regel 43:
 
</pre>
 
</pre>
  
 +
Ik wil dit in een eigen ''sub'' stoppen, maar daar krijg ik nog foutmeldingen (nov. 2019):
 +
 +
<pre>
 +
sub dvb_inspect(v)
 +
 +
' if IsObject(v) then
 +
' methods_txt=v.dbg_methods
 +
' msgbox "Object!"
 +
'
 +
' else
 +
' methods_txt="<no object>"
 +
' end if
 +
 +
 +
msgbox "isObject: " & chr(9) & IsObject(v) & chr(9) & "IsNull:      " & chr(9) & chr(9) & IsNull(v) & chr(9) & "IsEmpty:  " & IsEmpty(v) & chr(13) & _
 +
"IsArray:  " & chr(9) & IsArray(v) & chr(9) & "IsUnoStruct: " & chr(9) & IsUnoStruct(v) & chr(9) & "Typename: " & TypeName(v) & chr(13) & chr(13)
 +
 +
 +
' msgbox "isObject: " & chr(9) & IsObject(v) & chr(9) & "IsNull:      " & chr(9) & chr(9) & IsNull(v) & chr(9) & "IsEmpty:  " & IsEmpty(v) & chr(13) & _
 +
' "IsArray:  " & chr(9) & IsArray(v) & chr(9) & "IsUnoStruct: " & chr(9) & IsUnoStruct(v) & chr(9) & "Typename: " & TypeName(v) & chr(13) & chr(13) & _
 +
' "Object methods: " & methods_txt
 +
 +
end sub
 +
</pre>
  
 
== List of run-time errors ==
 
== List of run-time errors ==

Versie van 7 nov 2019 10:16

Break points

  • LibreOffice Basic-IDE: F9 [1]
  • Nadat je een break point hebt bereikt: F5 om verder te gaan, en F8 voor step

Stepping

  • F8: Step
  • Shift-F8: Step over
  • Shif-Ctrl-F8: Step out

Watch

LibreOffice Basic-IDE: F7 [2]

Inspection - code

Andre Pythonyak, OO_ME, Listing 216:

Dim v
v = Thiscomponent.getTextTables()
Print IsObject(v)      'True
Print IsNull(v)        'False
Print IsEmpty(v)       'False
Print IsArray(v)       'False
Print IsUnoStruct(v)   'False
Print TypeName(v)      'Object

MsgBox v.dbg_methods   'This property is discussed later

Iets uitgebreider (eigen fabrikaat):

v = Thiscomponent.getTextTables()

if IsObject(v) then	methods_txt=v.dbg_methods else methods_txt="<no object>"
	
msgbox	"isObject: " & chr(9) & IsObject(v)	& chr(9) & "IsNull:      " & chr(9) & chr(9)	& IsNull(v) 		& chr(9) & "IsEmpty:  "	& IsEmpty(v)	& chr(13) & _
	"IsArray:  " & chr(9) & IsArray(v)	& chr(9) & "IsUnoStruct: " & chr(9)	& IsUnoStruct(v)	& chr(9) & "Typename: "	& TypeName(v)	& chr(13) & chr(13) & _
	"Object methods: " & methods_txt

Ik wil dit in een eigen sub stoppen, maar daar krijg ik nog foutmeldingen (nov. 2019):

sub dvb_inspect(v)

'	if IsObject(v) then
'		methods_txt=v.dbg_methods
'		msgbox "Object!"
'		
'	else
'		methods_txt="<no object>"
'	end if		


	msgbox	"isObject: " & chr(9) & IsObject(v)	& chr(9) & "IsNull:      " & chr(9) & chr(9)	& IsNull(v) 		& chr(9) & "IsEmpty:  "	& IsEmpty(v)	& chr(13) & _
			"IsArray:  " & chr(9) & IsArray(v)	& chr(9) & "IsUnoStruct: " & chr(9)	& IsUnoStruct(v)	& chr(9) & "Typename: "	& TypeName(v)	& chr(13) & chr(13)
			
				
'	msgbox	"isObject: " & chr(9) & IsObject(v)	& chr(9) & "IsNull:      " & chr(9) & chr(9)	& IsNull(v) 		& chr(9) & "IsEmpty:  "	& IsEmpty(v)	& chr(13) & _
'			"IsArray:  " & chr(9) & IsArray(v)	& chr(9) & "IsUnoStruct: " & chr(9)	& IsUnoStruct(v)	& chr(9) & "Typename: "	& TypeName(v)	& chr(13) & chr(13) & _
'			"Object methods: " & methods_txt

end sub

List of run-time errors

MRI

MRI (UNO Object Inspection Tool) is een debugging-tool. De meest recente versie is uit 2013, en geeft een syntax-error als je 'm probeert te installeren [3]

Bronnen