Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
79afde9b
Kaydet (Commit)
79afde9b
authored
Eyl 26, 2016
tarafından
Michael Stahl
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
LLDB pretty print rtl_String / OString too
Change-Id: Iaf77d03d8116273054ae3efca88f44fd926bf211
üst
097f2e8c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
0 deletions
+40
-0
LO.py
solenv/lldb/libreoffice/LO.py
+40
-0
No files found.
solenv/lldb/libreoffice/LO.py
Dosyayı görüntüle @
79afde9b
...
...
@@ -12,6 +12,44 @@
import
lldb
def
rtl_String_summary
(
valobj
,
dict
):
if
valobj
.
TypeIsPointerType
():
return
rtl_String_summary
(
valobj
.
Dereference
(),
dict
)
length
=
valobj
.
GetChildMemberWithName
(
'length'
)
.
GetValueAsUnsigned
(
0
)
buffer
=
valobj
.
GetChildMemberWithName
(
'buffer'
)
buffer_ptr
=
buffer
.
AddressOf
();
# return '"' + buffer_ptr.GetPointeeData(0, length).GetString(lldb.SBError(), 0) + '"'
return
sal_ascii_string
(
buffer_ptr
,
length
)
def
rtl_OString_summary
(
valobj
,
dict
):
return
rtl_String_summary
(
valobj
.
GetChildMemberWithName
(
'pData'
),
dict
)
def
sal_ascii_string
(
buffer_ptr
,
length
):
e
=
lldb
.
SBError
()
s
=
'"'
i
=
0
while
i
<
length
:
c
=
buffer_ptr
.
GetPointeeData
(
i
,
1
)
.
GetUnsignedInt8
(
e
,
0
)
if
c
==
ord
(
'"'
):
s
=
s
+
'
\\
"'
elif
c
==
ord
(
'
\\
'
):
s
=
s
+
'
\\\\
'
elif
c
==
ord
(
'
\n
'
):
s
=
s
+
'
\\
n'
elif
c
==
ord
(
'
\r
'
):
s
=
s
+
'
\\
r'
elif
c
==
ord
(
'
\t
'
):
s
=
s
+
'
\\
t'
elif
c
<
ord
(
' '
):
s
=
s
+
'
\\
{:03o}'
.
format
(
c
)
elif
c
<
127
:
s
=
s
+
chr
(
c
)
else
:
s
=
s
+
'
\\
u{:04x}'
.
format
(
c
)
i
=
i
+
1
s
=
s
+
'"'
return
s
def
rtl_uString_summary
(
valobj
,
dict
):
# print "valobj = " + str(valobj) + ", valobj.GetData() = " + str(valobj.GetData()) + ", valobj.GetTypeName() = " + str(valobj.GetTypeName())
...
...
@@ -74,6 +112,8 @@ def sal_unicode_string(buffer_ptr, length):
# Automatically install the above summary functions when this is loaded
def
__lldb_init_module
(
debugger
,
dict
):
debugger
.
HandleCommand
(
"type summary add --skip-references --python-function LO.rtl_String_summary rtl_String"
)
debugger
.
HandleCommand
(
"type summary add --skip-pointers --skip-references --python-function LO.rtl_OString_summary rtl::OString"
)
debugger
.
HandleCommand
(
"type summary add --skip-references --python-function LO.rtl_uString_summary rtl_uString"
)
debugger
.
HandleCommand
(
"type summary add --skip-pointers --skip-references --python-function LO.rtl_OUString_summary rtl::OUString"
)
debugger
.
HandleCommand
(
"type summary add --skip-references --python-function LO.UniStringData_summary UniStringData"
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment