[Lldb-commits] [lldb] [lldb-dap] In DAP unit tests, add helpers for loading a CoreFile. (PR #140738)
John Harrison via lldb-commits
lldb-commits at lists.llvm.org
Wed May 21 12:06:39 PDT 2025
https://github.com/ashgti updated https://github.com/llvm/llvm-project/pull/140738
>From ac49fd8160b358a809be627502e1c03ad9cde08a Mon Sep 17 00:00:00 2001
From: John Harrison <harjohn at google.com>
Date: Tue, 20 May 2025 07:34:02 -0700
Subject: [PATCH 1/3] [lldb-dap] In DAP unit tests, add helpers for loading a
CoreFile.
This allows us to have a SBTarget and SBProcess for creating unit tests.
---
lldb/tools/lldb-dap/Protocol/ProtocolBase.h | 5 ++
lldb/unittests/DAP/CMakeLists.txt | 8 ++++
lldb/unittests/DAP/Handler/DisconnectTest.cpp | 32 ++++++++++++-
lldb/unittests/DAP/Inputs/linux-x86_64.core | Bin 0 -> 49152 bytes
lldb/unittests/DAP/Inputs/linux-x86_64.out | Bin 0 -> 2575 bytes
lldb/unittests/DAP/TestBase.cpp | 44 ++++++++++++++++++
lldb/unittests/DAP/TestBase.h | 19 ++++++++
7 files changed, 106 insertions(+), 2 deletions(-)
create mode 100644 lldb/unittests/DAP/Inputs/linux-x86_64.core
create mode 100755 lldb/unittests/DAP/Inputs/linux-x86_64.out
diff --git a/lldb/tools/lldb-dap/Protocol/ProtocolBase.h b/lldb/tools/lldb-dap/Protocol/ProtocolBase.h
index 1cb9cb13dd0da..724da59b50cd2 100644
--- a/lldb/tools/lldb-dap/Protocol/ProtocolBase.h
+++ b/lldb/tools/lldb-dap/Protocol/ProtocolBase.h
@@ -141,6 +141,11 @@ using Message = std::variant<Request, Response, Event>;
bool fromJSON(const llvm::json::Value &, Message &, llvm::json::Path);
llvm::json::Value toJSON(const Message &);
+inline llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const Message &V) {
+ OS << toJSON(V);
+ return OS;
+}
+
/// On error (whenever `success` is false), the body can provide more details.
struct ErrorResponseBody {
/// A structured error message.
diff --git a/lldb/unittests/DAP/CMakeLists.txt b/lldb/unittests/DAP/CMakeLists.txt
index cd421401f167b..16a3c2b736ee6 100644
--- a/lldb/unittests/DAP/CMakeLists.txt
+++ b/lldb/unittests/DAP/CMakeLists.txt
@@ -10,8 +10,16 @@ add_lldb_unittest(DAPTests
VariablesTest.cpp
LINK_LIBS
+ liblldb
lldbDAP
+ lldbUtilityHelpers
LLVMTestingSupport
LINK_COMPONENTS
Support
)
+
+set(test_inputs
+ linux-x86_64.out
+ linux-x86_64.core
+ )
+add_unittest_inputs(DAPTests "${test_inputs}")
diff --git a/lldb/unittests/DAP/Handler/DisconnectTest.cpp b/lldb/unittests/DAP/Handler/DisconnectTest.cpp
index 6f3470239e974..73e0f84f93af3 100644
--- a/lldb/unittests/DAP/Handler/DisconnectTest.cpp
+++ b/lldb/unittests/DAP/Handler/DisconnectTest.cpp
@@ -10,7 +10,10 @@
#include "Handler/RequestHandler.h"
#include "Protocol/ProtocolBase.h"
#include "TestBase.h"
+#include "lldb/API/SBDefines.h"
+#include "lldb/lldb-enumerations.h"
#include "llvm/Testing/Support/Error.h"
+#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include <memory>
#include <optional>
@@ -23,7 +26,7 @@ using namespace lldb_dap::protocol;
class DisconnectRequestHandlerTest : public DAPTestBase {};
-TEST_F(DisconnectRequestHandlerTest, DisconnectingTriggersTerminated) {
+TEST_F(DisconnectRequestHandlerTest, DisconnectTriggersTerminated) {
DisconnectRequestHandler handler(*dap);
EXPECT_FALSE(dap->disconnecting);
ASSERT_THAT_ERROR(handler.Run(std::nullopt), Succeeded());
@@ -31,5 +34,30 @@ TEST_F(DisconnectRequestHandlerTest, DisconnectingTriggersTerminated) {
std::vector<Message> messages = DrainOutput();
EXPECT_THAT(messages,
testing::Contains(testing::VariantWith<Event>(testing::FieldsAre(
- /*event=*/"terminated", /*body=*/std::nullopt))));
+ /*event=*/"terminated", /*body=*/testing::_))));
+}
+
+TEST_F(DisconnectRequestHandlerTest, DisconnectTriggersTerminateCommands) {
+ CreateDebugger();
+
+ if (!GetDebuggerSupportsTarget("X86"))
+ GTEST_SKIP() << "Unsupported platform";
+
+ LoadCore(DAPTestBase::k_linux_binary, DAPTestBase::k_linux_core);
+
+ DisconnectRequestHandler handler(*dap);
+
+ EXPECT_FALSE(dap->disconnecting);
+ dap->configuration.terminateCommands = {"?script print(1)",
+ "script print(2)"};
+ EXPECT_EQ(dap->target.GetProcess().GetState(), lldb::eStateStopped);
+ ASSERT_THAT_ERROR(handler.Run(std::nullopt), Succeeded());
+ EXPECT_TRUE(dap->disconnecting);
+ std::vector<Message> messages = DrainOutput();
+ EXPECT_THAT(messages, testing::ElementsAre(
+ OutputMatcher("Running terminateCommands:\n"),
+ OutputMatcher("(lldb) script print(2)\n"),
+ OutputMatcher("2\n"),
+ testing::VariantWith<Event>(testing::FieldsAre(
+ /*event=*/"terminated", /*body=*/testing::_))));
}
diff --git a/lldb/unittests/DAP/Inputs/linux-x86_64.core b/lldb/unittests/DAP/Inputs/linux-x86_64.core
new file mode 100644
index 0000000000000000000000000000000000000000..2675eadd6a7f6c5d89f038c58941ae8af8cae4f5
GIT binary patch
literal 49152
zcmeHQ4RBM}mA+3uM)(JbfD;I$h?JyIY9SdzY=}X^7 at iVCh=aSH2}G79*>Z~|B0W))
zO+t1JN!}_>oldiD(=?Or&g_txY?s+~cihe-H8=xHmYsFtnccLVY at IYt-67M`rX{pV
zQO|kr9$9{vE=*z5P0oe)&b{ZJbMCp{yZ7ApBhNk1+_J@{D1wqhY!Fi=A%av<LW81S
zl*zI~(!o-t64^(uFDaB{QQV1TFP<<3jdStjkvR)RJ)><u)mJS0;6PDp%1n^zO^SMk
zuX`oG<C^JuWRIw4O3(1~S*bT@(UWq*LW})7BK1T^0TY$1@>IsQc7QVKH{H?NjPezD
zlBqOLJo|$}9JdRB^m(8cOFi2zR&#m$$!ZJcm#1Eou2h1>JZ21l;IvrsSIb(P4bc#S
z+FdF6mrG15=D2$llo2YzShPxOWkH!Si51(ZFP+m$BvxsOtajy2#+-Nv?1#68?;_vm
znv?$}&HtZdaZCoGah!ML(^6_#&IcO)h4)W?AFC)n(72u}<>QjlFb&FiPjRGP)*EvU
z at +3D)@`<=8Bk62OH_Nd at n2}f|WhAY#l;>E=*ICL7W%;@5%&~6`YfEJP2OG_Lw=92G
z%3I7C*LfL$*4z at _LYNk>FM&xh(G#4ee&vSS6&$&2>WT&ehLhpsd446AR-REjqj*N~
zjJmQn>>O1%s&G`{sKQZ&BjMGJgyx$k<GqMY2>4%o7juAKl1zI`AjCuTQo_RL;ztVs
zeAgC)7icyZ6fNQHZS7EY{OjZ0p5Imeo_ZS1#e1~nfi?AO0}T!Sy0yOg`ucUXtJkbp
z=Z)ri;*9~n-|xkY-`j1Rvx#hDz?;o=ey%Z>iltLsJ*h-Il3Q0&$dneeby<H+*1s<1
z_r(JK+ST5 at V5Xt|7H=%w+uL}fF?w(GCi)VM<kBV6!(w#mn?!K at t1r-tVX&}VT6yT+
z&kav|zb^UbOW(O)a*J125c`Ak7nA1_`}5~Km9anc{?>bm{V{tl#GmW+q4&%Fk4S&$
zm2&Vh`$N}>DI>rLeDn}FVEO)Uli&a8J6ce7`3wbkDC75kJDjUTxv?(Ow>ndlG)y`!
zKWY&b!fS}3IXotf64IcNBf3oTiJ~l~J14Yw@!O)w`lDxxd#FDj4!l*~y1h*(Ki>Hd
zj(ZXhZ2aQ;Protu5q<u-7kb-NeL~eAm^|KG=v4E~lgGuX-6ICG{~a$@sCsT3D!bHt
z+aw5#tNMQzMo*H62dW}3;zw=c3+UuAxb-+WBE7 at 5F)8=83Z>7ZEUKL4!rx3R1|A*<
zLAV+PLUTM1+nTD%c7TAayA|kusQ+YX{XJ9lyMTW`)Zb8A-)`1#ZE9NQUEbE2OKCZ8
zov+?kS5uoaN`VIhbv}RH3X>~71Ip%2iMjOA$N4riIzxH~c;-cMDf1w&;1}ABaLlA=
z>x^cEqEMC5QPg=l0cSgYdsP(7+MZ~4Y!Qn6^F}@`oG#3jDP?#|JF6?5hGv!mz?cj)
zfGST9!Pzu2OB%7GfHG?Y&bB9Zpvl=}(uK^~C<oS2v;0mtDOEJ!4G at v@G^)8tO(=7f
zo94``u+LdEXRdP1EDwAjw)qshYhA_qicc*>R&c>rHZ4Rf>`rh8`QdrC1%OhWFvZNG
z(=95X2D-HjG8 at 1mbj@n%Z%s?CYUNXg$=ObUD&;<9<3iImwF#2oEdp;7=)0o4Kc@=L
z#&3FHfGMIk+LQ9dpbFA#8(o8W{kP`=@7{hg(0}^`JUA#yXFA=R$dELaaH4pd%<<u^
z>D6+nL}Pa%mB{qOpcu`>l8t@!Yirild271GswAkd+7s=JYDwdTn22PxXhsvUBwTyp
z%kJ;hqMbmsj7gJ}OQp4huRE3Vb>@2Z#A|xu!lxzrG~r7mBVCzjZ$kL+86uGaRy@&}
z>yAV-(NuRLOU0g4SDNzC&dy9?AC>mNLks1hITM3F>AVQEaip75r8I7tW+`4#BNVr&
z?1K!3M2cZ_IVzC}$vWL6+pL6h9URD`_LE8wN<t*1V4qQ%I?;VBaW+5(Mg7E(bX at AM
zu<#|@(7~#$a1gIlbhdQJYS$|J*^B5mNc}UVMrV-ioPmcbE9`g{;u(_^&(`+$LXDM&
z!Y8DDQ&H2*SY_`AHu9|fESDF0_eJ!{4*m{CHZ at JMTk1bDjeDW5Xos$Ssi<FG=p(Wr
z{JjgtRl5EVhm3^3lbNagarpz9RZ at -!`Ay|NM(uzMt>2|`cJP?S`E<S=#%-{aW#sL}
zr^)G6cJmj5)0t4R7iZJ-D!VaLr}MC6FQPKN&MxRzL{oh1zeD`8FvT%*h^wunU$mql
z?#Q>UQm8eP9S`uY0eS24gTFuW;Fa=pKyE6160$S#KYbB?F`h#Z#`RMM<w&G6o27gr
z9 at U~El1Rm;+Tk1{zz8q`i~u9R2rvSS03*N%{J%w at bHTOd-z994&s#G+kCpVUt6s`S
zW_UgWxd_S9^P$Z<{cnQKubN(7N(%h<A_fvmBp#Rg_adVF+rjVNd0R{KtsDPkY4RU`
zItSjoMb_fmAWn<`BftnS0*nA7zzAF}0{rWB{`ETldYym0eszDn&LfOR7>_VsYk95Z
zNXU_pBOymZj)WWuKfFk2{xxZ&k>?@LL!O5p-aKUN8GF7P<W-1QA&!I`2{{sSB;-iQ
zk&q+d)s2Ma(?7==jx`)>IM!U<Si>WXM;MPVUTb-+<w(epkRu^SLXLzS2|v6 at Xg>R2
z?q3P8JR`seFanGKBftnS0*nA7zz8q`i~u9R2rvSS03*N%FanGKBftnS0*nA7zz8q`
zi~u9R2rvSS03*N%FanGKBftnS0*nA7zz8q`i~u9R2z+=59B6LYVl(y%H+`^+4aWY)
z9dd)}pmgoE at +lvKq8|3L4Z=ROZbQ~NRdqqGQtA-}B_rV;#<=D2v#`Z2CM)&Gjirdv
zKE|kn#}PcuK$9k05S3zL$AlKg`~vB$mEJ1#h>{+<hkN=W9H>fuK-SnT82drcR6rix
z#{I!Dp>C-itiuCs>2>waEeY{WlE<BgA8dR5Uh(pxBR}*!^-Sv*{mF-KKlFCh<DdBJ
zFZVrj|H8j-O8w2JkKcUrk<LVK`y&_ZM-1vlS`OzMMTOWa9erN%v7KvxKPsJjRPr08
zyjO00tV;e`DR1SYS+sApgZm$&{SMi#yv$;;l(+JiN_nfFN#M_&VZY_uNM8DR6O=LC
z35U^N3tvPc`{LPjq&uN$J-vx^S3J6(c*vl9Y)?A&d6K$-nSo8_rwqmR<^=30pX;kZ
z(?0kg5G~>DZS9d-AL51kK416`y~OKo{`=<le_k~o%7{xlRzSjQV}tYA+_&slhY4}O
zgnM{nB3Z)K<W7w*FB*aLoAZS<QrZum=H_d1({S2%en`sG*v+64Bpkz-Xut3e3eujO
zr at xnFX-=Gx<=bSvseSd%=s(S=7Q7Zvu5vn!IfZ*>BbdZr<6Gkktgfl``+Z%p)d3%E
znTGm^GrGKWdz*Od#ZT;6Gq-j4r47lKei3@$J0~7|`~_u^eLcnkY)=K7i2o3D`m0z5
z#ZjQ`K;HuD0)vZD2B=@+O4m`juT?009%WJGEY~2^p-sH at lW?R^HZ;fcux)2mS at VGX
zF-N~MRz9-z)TaLk9S8YPh3)S0kxi$X&EgikHg$09f at 1;r at +eSKzp1Kh(_?nE-(d@*
zg4Av;$>X^BG8}tBkH!$%It<4i;2Ckk at C9uR*qa}7WXn%&CP&orQ(?**`s1MY7U-!!
zF`><0!{G%?Xl^3EO^uxm>#v6Olj_m89W4WnTU31_)E3%#*J<0kgZW#6XOAnnv-z!#
z{&R|Ueg8R|`{4ILt^b@|%iTRxfE3yl+P!<kt^BrYP(AvlSDk$<oDVKn^LMz^L$CJz
zXmdWYKy7#>TduBnIqd$YF;yAO-?4aGzTKO at uHjd?Z>VFFYGdK#Q|tF#8+cW%5idWr
zzW<nFvcB+(urhXcXxBFVdT1l8D}mvWmVuilC!y8+;$??^<UZI39<=0ZUI$i7{)Ybn
zVt5kDS1xP#_uLOmk4D4qO|&RK{8<cy^VQG2Rw$?gH~bxt{x{Eu^s%$fe}=r`KDZL<
zOFN?KqwW{0pG5hU&ijCb^_TQl-upp#>>d3Tb!`05t1bGQ`KrAr;0}+1xcc53s{8p-
zubQuF1#W&`s9`MkHFaRV>t}DDFBG~4+YsKJVg1*4sr~PG)I$ZWUe(`M2inHffo+q4
zv+6*j{%?iCWE`Xq4d+&>`Q~v|x96KD)t=$8ZJi$V=;Y1%u&Ot?0>j%5y_H*{_P^u-
zjCPNx`j1=mw}(35^0=KvZoYcqNq|eAzbs!p&&cgu<~aSbd&xnNgYl7fHb8smh+WlZ
zjTrv5h4tTrc82s1`U~za1dLFm|8{Krxqg=rTAezu-KFZk($9mhub%*4hal*HuddLp
zz%Y)5&H7JU^q+ at z4dLW-JCSv`Be&?VN1G_seFFP=Kj at x5rpEqL9jG1zV`~3Vn|kyO
zhpN0{3_#mqC3jBE2f}&|e7)BN)RnJoIHP^(^iSMNf}+&JeDzu|Nq){#51rL+QcoBW
zH2{cx)`f0V9`@uWh9(TpM!px^<QAv at 3x?I8OhbQ(HTK~_M5J6l_E&Ef+;BH=9U5~U
zovhT$KzJTF{TCpY5l*MQ3<`HZVZCtL?fp<_rkZ_F!1ddxIShr>RP%KxtfZPR!Khmb
zg==jNhvNR$q&om(&`RHRpE$R*scD^eIYh)2-UeT-FW{~92O9kKwYPYew<h9VHL98X
zn!pMneA#4H%V^O~;p<N2e934wDSYw$sqFq<lWG~WW?v$c?MbJm6(Vs%CfeH*6TVbh
zO9)>g8R^PIdlQjl92BV}d|IMU6TavkttSQT<zgDx%1$vNnZ({b(O9B4kpi(;y4T1+
zZ~w#u7sa^WgAivVT3?B7mV8`8Fu}+*5-b5m!dQJ4)<)8&^_b`mDQDG}Y=QSvXoK`=
zy(UV2V0*ZXQ2VrQ-vB(cP5QL{6Q%VYM2v(sN)yI#7&k@#X?-V3?U4V}4$)fBhe24>
zPf9_e^|CSaA9cuo$rd5V;LIZX&&mu at dM+TmNuSm>ykEpyUGm5JypV*t(nNNMht~%&
zA^nRzFOa-d{~n8eyVH~;>aYM#{*yiQ4 at HdV0<=SBh^`@EqyqI at 7DWm&rT#xD?~jSz
zO at fkI+z|()KDB>F>J!C#n9^j`e-bK@=Pwn4JUs_~#=<B4Qfld<p;0eySf9CwzJ<-j
z{{;c{#Bc|QxSb=XI57f at z{d;$nExkv{(sCaI(L^5kO;v1Ujz4Cy#DiuU<4QeMt~7u
J1U^Ox`~gNvINbmM
literal 0
HcmV?d00001
diff --git a/lldb/unittests/DAP/Inputs/linux-x86_64.out b/lldb/unittests/DAP/Inputs/linux-x86_64.out
new file mode 100755
index 0000000000000000000000000000000000000000..842402fd519d285dd21fd5b1a4040446121a161c
GIT binary patch
literal 2575
zcmbtVO>7%Q6n?WC$98^Pr)fo_fMnF7HVCg1WL2Ti#9-1Gr9v&LQ4X|b*WTC`@fxjn
zQHokP1W{Q%Kre8KICAF51(1l;DmQK%aSxGv=%I)UQV-_6`LWkqr>ewA^X9$p{ms1j
z`*Q8_C5<sqO at kF6>0OrNke~pM$G9l5WzZo9(=fqpBLfw3IVp*;BSWhZAjS0*j(V3%
zH0C&`#xoLEBiT~BdgxWg1^ZkyDXqx=1a=+!`ujy-e_i`=?1p`N^_wSq4`=SQPyG8!
zqgZGk7TUMF_t$z>;qF at ZK4h-%b8z=jiWG&m-$CV8;cl^u2Ax9t&)y#g$|Q-Z(yvok
zxZfyg_xE0}cd$<^Hp)$nef|Nkog|x|ipIXh+PsJu^{>$QBpJM&NPey5r^m0Lfz-W)
z<4x3`4(e|V^dBL93-vDr^_xP!p3h%Mohw?t<N2wqv20}1ulrnD`eG?-EM^x33a_EF
zMgf4*0?<0B6*+yHJVHopN{r1S&!R|Hv5#`pEYk(Xl!`BueD-XldV*L+tafj6>=H2j
z6V5jw5+iP$jc?)*-D);5&C7CPyc!6zy`PbaAW<1aM+8mxk!ts at P{_Cn86z-Gb{L&J
zC$1u4)9S$UA`-GkZpV}xuo?DBVs=tb%qM2p at o4e|3~ewyc46|($+L3=<xYM7&K%W3
zkKl9&e{WVhg;mOeFcV_r7)+uDmvsi26^w{W3rG4+M2ekcXL-nY1juE=V5 at T?w#tc?
zI9n>b1~hlZo+PG`@;i+Oj6uV!J4P8**y5VngW25;f9ao%gQeY#Lrp^mtJ!SWuCgYH
zE=npd&POWU at O;O<ShXG7t(Q?W-E!^X&hq*6`D`j(g-i|IGux(RdbNyaw>&7dJk#}{
zT*JKwqjj_4nHG+oE5 at 4QoTg_RRmV3hzrI~b*DGLn_KpXJT`O(5X2S-f+-x*#2ce2>
z`PGu?noiYjDY5QsH5G4KmTP~er0u$c-ogpfi5mPbI*;CT(#2H?zFQ)!daqOx^=>KI
zK!%<~^@geKm?98c__|40D3NBd6Q=UlSPmtCnl#+u(twD|JdjtACDX+L#JP_2UkKq6
z=02oa$F8uTX<SYy95-zH;Sv6CNdL#dpd)Op5g55F=tKd25JR7a^M8t(Fh<4?q<_Be
zDVVVBErbaRuX93f^z|eBRh${r%Tz;_Rq20c2z`346i4lS&~#C5^iML;6e{UmRr`<c
z5N~m$qw;r1fh{A3K2`JX1J7V|tc?1<gJwF;Se^4>T*q^p3qqXN<;N0M=nx4*(q7%B
zVYSY0>M%x<-ml8AP6t_p08Hy2gTH$Lh_h5zEwC>2rBU4p5C2l+G%8LK@#AP8{(kU#
sfh6rz@?+!%?KHBZ at K=w(`|mkE!t{U2N4Zq8S}n!f71J}JWIGl350{SxdH?_b
literal 0
HcmV?d00001
diff --git a/lldb/unittests/DAP/TestBase.cpp b/lldb/unittests/DAP/TestBase.cpp
index eb146cb2fa9f4..1c58c351776ec 100644
--- a/lldb/unittests/DAP/TestBase.cpp
+++ b/lldb/unittests/DAP/TestBase.cpp
@@ -8,9 +8,16 @@
#include "TestBase.h"
#include "Protocol/ProtocolBase.h"
+#include "TestingSupport/TestUtilities.h"
+#include "lldb/API/SBDefines.h"
+#include "lldb/API/SBStructuredData.h"
#include "lldb/Host/File.h"
#include "lldb/Host/Pipe.h"
+#include "lldb/lldb-forward.h"
+#include "llvm/ADT/StringRef.h"
#include "llvm/Testing/Support/Error.h"
+#include "gtest/gtest.h"
+#include <memory>
using namespace llvm;
using namespace lldb;
@@ -55,6 +62,43 @@ void DAPTestBase::SetUp() {
/*transport=*/*to_dap);
}
+void DAPTestBase::SetUpTestSuite() {
+ lldb::SBError error = SBDebugger::InitializeWithErrorHandling();
+ EXPECT_TRUE(error.Success());
+}
+void DAPTestBase::TeatUpTestSuite() { SBDebugger::Terminate(); }
+
+bool DAPTestBase::GetDebuggerSupportsTarget(llvm::StringRef platform) {
+ EXPECT_TRUE(dap->debugger);
+
+ lldb::SBStructuredData data = dap->debugger.GetBuildConfiguration()
+ .GetValueForKey("targets")
+ .GetValueForKey("value");
+ for (size_t i = 0; i < data.GetSize(); i++) {
+ char buf[100] = {0};
+ size_t size = data.GetItemAtIndex(i).GetStringValue(buf, sizeof(buf));
+ if (llvm::StringRef(buf, size) == platform)
+ return true;
+ }
+
+ return false;
+}
+
+void DAPTestBase::CreateDebugger() {
+ dap->debugger = lldb::SBDebugger::Create();
+ ASSERT_TRUE(dap->debugger);
+}
+
+void DAPTestBase::LoadCore(llvm::StringRef binary, llvm::StringRef core) {
+ ASSERT_TRUE(dap->debugger);
+ dap->target =
+ dap->debugger.CreateTarget(lldb_private::GetInputFilePath(binary).data());
+ ASSERT_TRUE(dap->target);
+ SBProcess process =
+ dap->target.LoadCore(lldb_private::GetInputFilePath(core).data());
+ ASSERT_TRUE(process);
+}
+
std::vector<Message> DAPTestBase::DrainOutput() {
std::vector<Message> msgs;
output.CloseWriteFileDescriptor();
diff --git a/lldb/unittests/DAP/TestBase.h b/lldb/unittests/DAP/TestBase.h
index c789adf53c225..c6c261fa2b64c 100644
--- a/lldb/unittests/DAP/TestBase.h
+++ b/lldb/unittests/DAP/TestBase.h
@@ -10,6 +10,8 @@
#include "Protocol/ProtocolBase.h"
#include "Transport.h"
#include "lldb/Host/Pipe.h"
+#include "llvm/ADT/StringRef.h"
+#include "gmock/gmock.h"
#include "gtest/gtest.h"
namespace lldb_dap_tests {
@@ -33,13 +35,30 @@ class TransportBase : public PipeBase {
void SetUp() override;
};
+/// Matches an "output" event.
+inline auto OutputMatcher(const llvm::StringRef output,
+ const llvm::StringRef category = "console") {
+ return testing::VariantWith<lldb_dap::protocol::Event>(testing::FieldsAre(
+ /*event=*/"output", /*body=*/testing::Optional<llvm::json::Value>(
+ llvm::json::Object{{"category", category}, {"output", output}})));
+}
+
/// A base class for tests that interact with a `lldb_dap::DAP` instance.
class DAPTestBase : public TransportBase {
protected:
std::unique_ptr<lldb_dap::DAP> dap;
+ static constexpr llvm::StringLiteral k_linux_binary = "linux-x86_64.out";
+ static constexpr llvm::StringLiteral k_linux_core = "linux-x86_64.core";
+
+ static void SetUpTestSuite();
+ static void TeatUpTestSuite();
void SetUp() override;
+ bool GetDebuggerSupportsTarget(llvm::StringRef platform);
+ void CreateDebugger();
+ void LoadCore(llvm::StringRef binary, llvm::StringRef core);
+
/// Closes the DAP output pipe and returns the remaining protocol messages in
/// the buffer.
std::vector<lldb_dap::protocol::Message> DrainOutput();
>From 144d765a2f1cff48f57375403805c702cbe7bc93 Mon Sep 17 00:00:00 2001
From: John Harrison <harjohn at google.com>
Date: Wed, 21 May 2025 11:30:09 -0700
Subject: [PATCH 2/3] Using yaml2obj for the binary and core dumps.
---
lldb/unittests/DAP/CMakeLists.txt | 4 +-
lldb/unittests/DAP/Handler/DisconnectTest.cpp | 2 +-
lldb/unittests/DAP/Inputs/linux-x86_64.core | Bin 49152 -> 0 bytes
.../DAP/Inputs/linux-x86_64.core.yaml | 49 ++++++
lldb/unittests/DAP/Inputs/linux-x86_64.out | Bin 2575 -> 0 bytes
.../DAP/Inputs/linux-x86_64.out.yaml | 148 ++++++++++++++++++
lldb/unittests/DAP/TestBase.cpp | 24 ++-
lldb/unittests/DAP/TestBase.h | 9 +-
.../TestingSupport/TestUtilities.cpp | 9 ++
lldb/unittests/TestingSupport/TestUtilities.h | 3 +
10 files changed, 238 insertions(+), 10 deletions(-)
delete mode 100644 lldb/unittests/DAP/Inputs/linux-x86_64.core
create mode 100644 lldb/unittests/DAP/Inputs/linux-x86_64.core.yaml
delete mode 100755 lldb/unittests/DAP/Inputs/linux-x86_64.out
create mode 100644 lldb/unittests/DAP/Inputs/linux-x86_64.out.yaml
diff --git a/lldb/unittests/DAP/CMakeLists.txt b/lldb/unittests/DAP/CMakeLists.txt
index 16a3c2b736ee6..58ce09ec4154a 100644
--- a/lldb/unittests/DAP/CMakeLists.txt
+++ b/lldb/unittests/DAP/CMakeLists.txt
@@ -19,7 +19,7 @@ add_lldb_unittest(DAPTests
)
set(test_inputs
- linux-x86_64.out
- linux-x86_64.core
+ linux-x86_64.out.yaml
+ linux-x86_64.core.yaml
)
add_unittest_inputs(DAPTests "${test_inputs}")
diff --git a/lldb/unittests/DAP/Handler/DisconnectTest.cpp b/lldb/unittests/DAP/Handler/DisconnectTest.cpp
index 73e0f84f93af3..0546aeb154d50 100644
--- a/lldb/unittests/DAP/Handler/DisconnectTest.cpp
+++ b/lldb/unittests/DAP/Handler/DisconnectTest.cpp
@@ -43,7 +43,7 @@ TEST_F(DisconnectRequestHandlerTest, DisconnectTriggersTerminateCommands) {
if (!GetDebuggerSupportsTarget("X86"))
GTEST_SKIP() << "Unsupported platform";
- LoadCore(DAPTestBase::k_linux_binary, DAPTestBase::k_linux_core);
+ LoadCore();
DisconnectRequestHandler handler(*dap);
diff --git a/lldb/unittests/DAP/Inputs/linux-x86_64.core b/lldb/unittests/DAP/Inputs/linux-x86_64.core
deleted file mode 100644
index 2675eadd6a7f6c5d89f038c58941ae8af8cae4f5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 49152
zcmeHQ4RBM}mA+3uM)(JbfD;I$h?JyIY9SdzY=}X^7 at iVCh=aSH2}G79*>Z~|B0W))
zO+t1JN!}_>oldiD(=?Or&g_txY?s+~cihe-H8=xHmYsFtnccLVY at IYt-67M`rX{pV
zQO|kr9$9{vE=*z5P0oe)&b{ZJbMCp{yZ7ApBhNk1+_J@{D1wqhY!Fi=A%av<LW81S
zl*zI~(!o-t64^(uFDaB{QQV1TFP<<3jdStjkvR)RJ)><u)mJS0;6PDp%1n^zO^SMk
zuX`oG<C^JuWRIw4O3(1~S*bT@(UWq*LW})7BK1T^0TY$1@>IsQc7QVKH{H?NjPezD
zlBqOLJo|$}9JdRB^m(8cOFi2zR&#m$$!ZJcm#1Eou2h1>JZ21l;IvrsSIb(P4bc#S
z+FdF6mrG15=D2$llo2YzShPxOWkH!Si51(ZFP+m$BvxsOtajy2#+-Nv?1#68?;_vm
znv?$}&HtZdaZCoGah!ML(^6_#&IcO)h4)W?AFC)n(72u}<>QjlFb&FiPjRGP)*EvU
z at +3D)@`<=8Bk62OH_Nd at n2}f|WhAY#l;>E=*ICL7W%;@5%&~6`YfEJP2OG_Lw=92G
z%3I7C*LfL$*4z at _LYNk>FM&xh(G#4ee&vSS6&$&2>WT&ehLhpsd446AR-REjqj*N~
zjJmQn>>O1%s&G`{sKQZ&BjMGJgyx$k<GqMY2>4%o7juAKl1zI`AjCuTQo_RL;ztVs
zeAgC)7icyZ6fNQHZS7EY{OjZ0p5Imeo_ZS1#e1~nfi?AO0}T!Sy0yOg`ucUXtJkbp
z=Z)ri;*9~n-|xkY-`j1Rvx#hDz?;o=ey%Z>iltLsJ*h-Il3Q0&$dneeby<H+*1s<1
z_r(JK+ST5 at V5Xt|7H=%w+uL}fF?w(GCi)VM<kBV6!(w#mn?!K at t1r-tVX&}VT6yT+
z&kav|zb^UbOW(O)a*J125c`Ak7nA1_`}5~Km9anc{?>bm{V{tl#GmW+q4&%Fk4S&$
zm2&Vh`$N}>DI>rLeDn}FVEO)Uli&a8J6ce7`3wbkDC75kJDjUTxv?(Ow>ndlG)y`!
zKWY&b!fS}3IXotf64IcNBf3oTiJ~l~J14Yw@!O)w`lDxxd#FDj4!l*~y1h*(Ki>Hd
zj(ZXhZ2aQ;Protu5q<u-7kb-NeL~eAm^|KG=v4E~lgGuX-6ICG{~a$@sCsT3D!bHt
z+aw5#tNMQzMo*H62dW}3;zw=c3+UuAxb-+WBE7 at 5F)8=83Z>7ZEUKL4!rx3R1|A*<
zLAV+PLUTM1+nTD%c7TAayA|kusQ+YX{XJ9lyMTW`)Zb8A-)`1#ZE9NQUEbE2OKCZ8
zov+?kS5uoaN`VIhbv}RH3X>~71Ip%2iMjOA$N4riIzxH~c;-cMDf1w&;1}ABaLlA=
z>x^cEqEMC5QPg=l0cSgYdsP(7+MZ~4Y!Qn6^F}@`oG#3jDP?#|JF6?5hGv!mz?cj)
zfGST9!Pzu2OB%7GfHG?Y&bB9Zpvl=}(uK^~C<oS2v;0mtDOEJ!4G at v@G^)8tO(=7f
zo94``u+LdEXRdP1EDwAjw)qshYhA_qicc*>R&c>rHZ4Rf>`rh8`QdrC1%OhWFvZNG
z(=95X2D-HjG8 at 1mbj@n%Z%s?CYUNXg$=ObUD&;<9<3iImwF#2oEdp;7=)0o4Kc@=L
z#&3FHfGMIk+LQ9dpbFA#8(o8W{kP`=@7{hg(0}^`JUA#yXFA=R$dELaaH4pd%<<u^
z>D6+nL}Pa%mB{qOpcu`>l8t@!Yirild271GswAkd+7s=JYDwdTn22PxXhsvUBwTyp
z%kJ;hqMbmsj7gJ}OQp4huRE3Vb>@2Z#A|xu!lxzrG~r7mBVCzjZ$kL+86uGaRy@&}
z>yAV-(NuRLOU0g4SDNzC&dy9?AC>mNLks1hITM3F>AVQEaip75r8I7tW+`4#BNVr&
z?1K!3M2cZ_IVzC}$vWL6+pL6h9URD`_LE8wN<t*1V4qQ%I?;VBaW+5(Mg7E(bX at AM
zu<#|@(7~#$a1gIlbhdQJYS$|J*^B5mNc}UVMrV-ioPmcbE9`g{;u(_^&(`+$LXDM&
z!Y8DDQ&H2*SY_`AHu9|fESDF0_eJ!{4*m{CHZ at JMTk1bDjeDW5Xos$Ssi<FG=p(Wr
z{JjgtRl5EVhm3^3lbNagarpz9RZ at -!`Ay|NM(uzMt>2|`cJP?S`E<S=#%-{aW#sL}
zr^)G6cJmj5)0t4R7iZJ-D!VaLr}MC6FQPKN&MxRzL{oh1zeD`8FvT%*h^wunU$mql
z?#Q>UQm8eP9S`uY0eS24gTFuW;Fa=pKyE6160$S#KYbB?F`h#Z#`RMM<w&G6o27gr
z9 at U~El1Rm;+Tk1{zz8q`i~u9R2rvSS03*N%{J%w at bHTOd-z994&s#G+kCpVUt6s`S
zW_UgWxd_S9^P$Z<{cnQKubN(7N(%h<A_fvmBp#Rg_adVF+rjVNd0R{KtsDPkY4RU`
zItSjoMb_fmAWn<`BftnS0*nA7zzAF}0{rWB{`ETldYym0eszDn&LfOR7>_VsYk95Z
zNXU_pBOymZj)WWuKfFk2{xxZ&k>?@LL!O5p-aKUN8GF7P<W-1QA&!I`2{{sSB;-iQ
zk&q+d)s2Ma(?7==jx`)>IM!U<Si>WXM;MPVUTb-+<w(epkRu^SLXLzS2|v6 at Xg>R2
z?q3P8JR`seFanGKBftnS0*nA7zz8q`i~u9R2rvSS03*N%FanGKBftnS0*nA7zz8q`
zi~u9R2rvSS03*N%FanGKBftnS0*nA7zz8q`i~u9R2z+=59B6LYVl(y%H+`^+4aWY)
z9dd)}pmgoE at +lvKq8|3L4Z=ROZbQ~NRdqqGQtA-}B_rV;#<=D2v#`Z2CM)&Gjirdv
zKE|kn#}PcuK$9k05S3zL$AlKg`~vB$mEJ1#h>{+<hkN=W9H>fuK-SnT82drcR6rix
z#{I!Dp>C-itiuCs>2>waEeY{WlE<BgA8dR5Uh(pxBR}*!^-Sv*{mF-KKlFCh<DdBJ
zFZVrj|H8j-O8w2JkKcUrk<LVK`y&_ZM-1vlS`OzMMTOWa9erN%v7KvxKPsJjRPr08
zyjO00tV;e`DR1SYS+sApgZm$&{SMi#yv$;;l(+JiN_nfFN#M_&VZY_uNM8DR6O=LC
z35U^N3tvPc`{LPjq&uN$J-vx^S3J6(c*vl9Y)?A&d6K$-nSo8_rwqmR<^=30pX;kZ
z(?0kg5G~>DZS9d-AL51kK416`y~OKo{`=<le_k~o%7{xlRzSjQV}tYA+_&slhY4}O
zgnM{nB3Z)K<W7w*FB*aLoAZS<QrZum=H_d1({S2%en`sG*v+64Bpkz-Xut3e3eujO
zr at xnFX-=Gx<=bSvseSd%=s(S=7Q7Zvu5vn!IfZ*>BbdZr<6Gkktgfl``+Z%p)d3%E
znTGm^GrGKWdz*Od#ZT;6Gq-j4r47lKei3@$J0~7|`~_u^eLcnkY)=K7i2o3D`m0z5
z#ZjQ`K;HuD0)vZD2B=@+O4m`juT?009%WJGEY~2^p-sH at lW?R^HZ;fcux)2mS at VGX
zF-N~MRz9-z)TaLk9S8YPh3)S0kxi$X&EgikHg$09f at 1;r at +eSKzp1Kh(_?nE-(d@*
zg4Av;$>X^BG8}tBkH!$%It<4i;2Ckk at C9uR*qa}7WXn%&CP&orQ(?**`s1MY7U-!!
zF`><0!{G%?Xl^3EO^uxm>#v6Olj_m89W4WnTU31_)E3%#*J<0kgZW#6XOAnnv-z!#
z{&R|Ueg8R|`{4ILt^b@|%iTRxfE3yl+P!<kt^BrYP(AvlSDk$<oDVKn^LMz^L$CJz
zXmdWYKy7#>TduBnIqd$YF;yAO-?4aGzTKO at uHjd?Z>VFFYGdK#Q|tF#8+cW%5idWr
zzW<nFvcB+(urhXcXxBFVdT1l8D}mvWmVuilC!y8+;$??^<UZI39<=0ZUI$i7{)Ybn
zVt5kDS1xP#_uLOmk4D4qO|&RK{8<cy^VQG2Rw$?gH~bxt{x{Eu^s%$fe}=r`KDZL<
zOFN?KqwW{0pG5hU&ijCb^_TQl-upp#>>d3Tb!`05t1bGQ`KrAr;0}+1xcc53s{8p-
zubQuF1#W&`s9`MkHFaRV>t}DDFBG~4+YsKJVg1*4sr~PG)I$ZWUe(`M2inHffo+q4
zv+6*j{%?iCWE`Xq4d+&>`Q~v|x96KD)t=$8ZJi$V=;Y1%u&Ot?0>j%5y_H*{_P^u-
zjCPNx`j1=mw}(35^0=KvZoYcqNq|eAzbs!p&&cgu<~aSbd&xnNgYl7fHb8smh+WlZ
zjTrv5h4tTrc82s1`U~za1dLFm|8{Krxqg=rTAezu-KFZk($9mhub%*4hal*HuddLp
zz%Y)5&H7JU^q+ at z4dLW-JCSv`Be&?VN1G_seFFP=Kj at x5rpEqL9jG1zV`~3Vn|kyO
zhpN0{3_#mqC3jBE2f}&|e7)BN)RnJoIHP^(^iSMNf}+&JeDzu|Nq){#51rL+QcoBW
zH2{cx)`f0V9`@uWh9(TpM!px^<QAv at 3x?I8OhbQ(HTK~_M5J6l_E&Ef+;BH=9U5~U
zovhT$KzJTF{TCpY5l*MQ3<`HZVZCtL?fp<_rkZ_F!1ddxIShr>RP%KxtfZPR!Khmb
zg==jNhvNR$q&om(&`RHRpE$R*scD^eIYh)2-UeT-FW{~92O9kKwYPYew<h9VHL98X
zn!pMneA#4H%V^O~;p<N2e934wDSYw$sqFq<lWG~WW?v$c?MbJm6(Vs%CfeH*6TVbh
zO9)>g8R^PIdlQjl92BV}d|IMU6TavkttSQT<zgDx%1$vNnZ({b(O9B4kpi(;y4T1+
zZ~w#u7sa^WgAivVT3?B7mV8`8Fu}+*5-b5m!dQJ4)<)8&^_b`mDQDG}Y=QSvXoK`=
zy(UV2V0*ZXQ2VrQ-vB(cP5QL{6Q%VYM2v(sN)yI#7&k@#X?-V3?U4V}4$)fBhe24>
zPf9_e^|CSaA9cuo$rd5V;LIZX&&mu at dM+TmNuSm>ykEpyUGm5JypV*t(nNNMht~%&
zA^nRzFOa-d{~n8eyVH~;>aYM#{*yiQ4 at HdV0<=SBh^`@EqyqI at 7DWm&rT#xD?~jSz
zO at fkI+z|()KDB>F>J!C#n9^j`e-bK@=Pwn4JUs_~#=<B4Qfld<p;0eySf9CwzJ<-j
z{{;c{#Bc|QxSb=XI57f at z{d;$nExkv{(sCaI(L^5kO;v1Ujz4Cy#DiuU<4QeMt~7u
J1U^Ox`~gNvINbmM
diff --git a/lldb/unittests/DAP/Inputs/linux-x86_64.core.yaml b/lldb/unittests/DAP/Inputs/linux-x86_64.core.yaml
new file mode 100644
index 0000000000000..392418f7e82de
--- /dev/null
+++ b/lldb/unittests/DAP/Inputs/linux-x86_64.core.yaml
@@ -0,0 +1,49 @@
+--- !minidump
+Streams:
+ - Type: SystemInfo
+ Processor Arch: AMD64
+ Platform ID: Linux
+ - Type: ModuleList
+ Modules:
+ - Base of Image: 0x400000
+ Size of Image: 0x1E0
+ Time Date Stamp: 1747851624
+ Module Name: 'linux-x86_64.out'
+ CodeView Record: 4C45704201DF54A6045E657D3F8FFB9CE111878914F8BD6D
+ Reserved0: 0xFFFFFFF800000001
+ Reserved1: 0x2AE15B07FFFFFFF
+ - Base of Image: 0x7FFC24129000
+ Size of Image: 0xA0C
+ Time Date Stamp: 1747851624
+ Module Name: '[vdso](0x00007ffc24129000)'
+ CodeView Record: 4C4570428CBE1E6C351152C0C43E68C4EF417DB4C77E8EBD
+ Reserved0: 0xFFFFFFF800000001
+ Reserved1: 0x2AE15B07FFFFFFF
+ - Type: MiscInfo
+ Content: 1800000001000000037E000000000000509F306F01000000
+ - Type: ThreadList
+ Threads:
+ - Thread Id: 0x7E03
+ Context: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700100000000000FFFFFFFF0000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E8150B24FC7F0000E8150B24FC7F00000C014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001C014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ Stack:
+ Start of Memory Range: 0x7FFC240B1568
+ Content: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006218160B24FC7F000042014000000000000C0140000000000000000000000000000000000000000000000000000000006638160B24FC7F00005F014000000000000000000000000000000000000000005F0000000000000000010000000000000002200B24FC7F00000000000000000000FE2F0B24FC7F00000000000000000000210000000000000000901224FC7F00001000000000000000FFFBEBBF0000000006000000000000000010000000000000110000000000000064000000000000000300000000000000400040000000000004000000000000003800000000000000050000000000000003000000000000000700000000000000000000000000000008000000000000000000000000000000090000000000000044014000000000000B0000000000000000000000000000000C0000000000000000000000000000000D0000000000000000000000000000000E000000000000000000000000000000170000000000000000000000000000001900000000000000A9170B24FC7F00001A0000000000000000000000000000001F00000000000000FC3F0B24FC7F00000F00000000000000B9170B24FC7F000000000000000000000000000000000000000AB340B9514A4C453C3FB52168ADE70E7838365F36340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F612E6F7574005F3D2F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F612E6F7574002F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F612E6F7574000000000000000000
+ - Type: Exception
+ Thread ID: 0x7E03
+ Exception Record:
+ Exception Code: 0xB
+ Exception Address: 0x40011C
+ Thread Context: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700100000000000FFFFFFFF0000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E8150B24FC7F0000E8150B24FC7F00000C014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001C014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ - Type: MemoryList
+ Memory Ranges:
+ - Start of Memory Range: 0x7FFC240B1568
+ Content: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006218160B24FC7F000042014000000000000C0140000000000000000000000000000000000000000000000000000000006638160B24FC7F00005F014000000000000000000000000000000000000000005F0000000000000000010000000000000002200B24FC7F00000000000000000000FE2F0B24FC7F00000000000000000000210000000000000000901224FC7F00001000000000000000FFFBEBBF0000000006000000000000000010000000000000110000000000000064000000000000000300000000000000400040000000000004000000000000003800000000000000050000000000000003000000000000000700000000000000000000000000000008000000000000000000000000000000090000000000000044014000000000000B0000000000000000000000000000000C0000000000000000000000000000000D0000000000000000000000000000000E000000000000000000000000000000170000000000000000000000000000001900000000000000A9170B24FC7F00001A0000000000000000000000000000001F00000000000000FC3F0B24FC7F00000F00000000000000B9170B24FC7F000000000000000000000000000000000000000AB340B9514A4C453C3FB52168ADE70E7838365F36340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F612E6F7574005F3D2F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F612E6F7574002F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F746573742F612E6F7574000000000000000000
+ - Start of Memory Range: 0x400000
+ Content: 7F454C4602010100000000000000000002003E000100000044014000000000004000000000000000F0040000000000000000000040003800030040000D000A000100000005000000000000000000000000004000000000000000400000000000E001000000000000E00100000000000000002000000000000400000004000000E800000000000000E800400000000000E80040000000000024000000000000002400000000000000040000000000000051E5746406000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000040000001400000003000000474E550001DF54A6045E657D3F8FFB9CE111878914F8BD6D554889E548897DE8C645FF62488B45E8C6002F5DC3554889E54883EC2048897DE8488975E0C645FF66488B55E8488B45E04889D7FFD0C9C3554889E54883EC10C645FF5FBE0C014000BF00000000E8C2FFFFFFC9C3000000000000001400000000000000017A5200017810011B0C0708900100001C0000001C00000084FFFFFF1500000000410E108602430D06500C07080000001C0000003C00000079FFFFFF2300000000410E108602430D065E0C07080000001C0000005C0000007CFFFFFF1D00000000410E108602430D06580C07080000004743433A20285562756E747520342E382E342D327562756E7475317E31342E30342920342E382E34002C0000000200000000000800000000000C01400000000000550000000000000000000000000000000000000000000000EC00000004000000000008011300000001070000003F0000000C01400000000000550000000000000000000000026261720001010C014000000000001500000000000000019C65000000030E00000001016500000002915804460001036B00000002916F0005086B0000000601065800000007666F6F00010721014000000000002300000000000000019CB8000000030E00000001076500000002915803000000000107C300000002915004460001096B00000002916F0008C30000000965000000000508B80000000A51000000010D44014000000000001D00000000000000019C044600010F6B00000002916F0000011101250E130B030E1B0E1101120710170000022E0103083A0B3B0B271911011207401897421901130000030500030E3A0B3B0B49130218000004340003083A0B3B0B491302180000050F000B0B491300000624000B0B3E0B030E0000072E0103083A0B3B0B271911011207401896421901130000081501271901130000090500491300000A2E013F19030E3A0B3B0B27191101120740189642190000003F00000002001D0000000101FB0E0D000101010100000001000001006D61696E2E6300000000000009020C0140000000000013834B7531F34BC931834BE50202000101626F6F6D6572006D61696E2E6300626F6F6D00474E55204320342E382E34202D6D74756E653D67656E65726963202D6D617263683D7838362D3634202D67002F686F6D652F6C61626174682F74657374005F7374617274006368617200002E73796D746162002E737472746162002E7368737472746162002E6E6F74652E676E752E6275696C642D6964002E74657874002E65685F6672616D65002E636F6D6D656E74002E64656275675F6172616E676573002E64656275675F696E666F002E64656275675F616262726576002E64656275675F6C696E65002E64656275675F737472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001B000000070000000200000000000000E800400000000000E80000000000000024000000000000000000000000000000040000000000000000000000000000002E0000000100000006000000000000000C014000000000000C010000000000005500000000000000000000000000000001000000000000000000000000000000340000000100000002000000000000006801400000000000680100000000000078000000000000000000000000000000080000000000000000000000000000003E0000000100000030000000000000000000000000000000E0010000000000002900000000000000000000000000000001000000000000000100000000000000470000000100000000000000000000000000000000000000090200000000000030000000000000000000000000000000010000000000000000000000000000005600000001000000000000000000000000000000000000003902000000000000F00000000000000000000000000000000100000000000000000000000000000062000000010000000000000000000000000000000000000029030000000000009E00000000000000000000000000000001000000000000000000000000000000700000000100000000000000000000000000000000000000C70300000000000043000000000000000000000000000000010000000000000000000000000000007C00000001000000300000000000000000000000000000000A040000000000005D00000000000000000000000000000001000000000000000100000000000000110000000300000000000000000000000000000000000000670400000000000087000000000000000000000000000000010000000000000000000000000000000100000002000000000000000000000000000000000000003008000000000000B0010000000000000C0000000E00000008000000000000001800000000000000090000000300000000000000000000000000000000000000E0090000000000002F000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000100E800400000000000000000000000000000000000030002000C014000000000000000000000000000000000000300030068014000000000000000000000000000000000000300040000000000000000000000000000000000000000000300050000000000000000000000000000000000000000000300060000000000000000000000000000000000000000000300070000000000000000000000000000000000000000000300080000000000000000000000000000000000000000000300090000000000000000000000000000000000010000000400F1FF0000000000000000000000000000000008000000020002000C0140000000000015000000000000000C0000000200020021014000000000002300000000000000000000000400F1FF00000000000000000000000000000000100000001200020044014000000000001D000000000000001700000010000300001060000000000000000000000000002300000010000300001060000000000000000000000000002A0000001000030000106000000000000000000000000000006D61696E2E630062617200666F6F005F7374617274005F5F6273735F7374617274005F6564617461005F656E6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ - Start of Memory Range: 0x7FFC24126000
+ Content: '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
+ - Start of Memory Range: 0x7FFC24129000
+ Content: 7F454C4602010100000000000000000003003E000100000060060000000000004000000000000000D80A00000000000000000000400038000400400010000F0001000000050000000000000000000000000000000000000000000000000000000C0A0000000000000C0A00000000000000100000000000000200000004000000A003000000000000A003000000000000A0030000000000001001000000000000100100000000000008000000000000000400000004000000B004000000000000B004000000000000B00400000000000068000000000000006800000000000000040000000000000050E57464040000001805000000000000180500000000000018050000000000003C000000000000003C000000000000000400000000000000030000000C000000060000000500000008000000000000000000000009000000020000000A000000000000000B0000000100000007000000000000000300000004000000000000000300000001000000010000000600000089343805466500A10100000007000000090000007E55DD7100CA1BB0DA109A9E528F3068864B85E60D8E1E8294789E7C19A3436E8A2AC62626B062656D5887FF0000000000000000000000000000000000000000000000002800000022000B007008000000000000AC000000000000000100000012000B00D00700000000000088000000000000003D00000022000B00200900000000000048000000000000003600000012000B00200900000000000048000000000000000800000022000B00D00700000000000088000000000000001500000012000B00600800000000000010000000000000001C00000022000B00600800000000000010000000000000002100000012000B007008000000000000AC00000000000000680000001100F1FF000000000000000000000000000000004A00000012000B00700900000000000025000000000000005100000022000B0070090000000000002500000000000000005F5F7664736F5F67657474696D656F66646179005F5F7664736F5F74696D65005F5F7664736F5F636C6F636B5F67657474696D65005F5F7664736F5F636C6F636B5F676574726573005F5F7664736F5F676574637075006C696E75782D7664736F2E736F2E31004C494E55585F322E36000000020002000200020002000200020002000200020002000000000000000100010001000100A1BFEE0D140000001C00000058000000000000000100000002000100F675AE03140000000000000068000000000000000E0000000000000058000000000000001000000000000000000000000000000004000000000000002001000000000000F5FEFF6F0000000068010000000000000500000000000000D8020000000000000600000000000000B8010000000000000A0000000000000072000000000000000B000000000000001800000000000000FCFFFF6F000000006803000000000000FDFFFF6F000000000200000000000000F0FFFF6F000000004A030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000004000000000000004C696E75780000000D0505000600000017000000000100004C696E7578000000352E352E31332D3230302E666333312E7838365F36340000040000001400000003000000474E55008CBE1E6C351152C0C43E68C4EF417DB4C77E8EBD011B033B3C000000060000004801000058000000B80200009800000048030000D000000058030000E4000000080400001C0100005804000030010000000000001400000000000000017A5200017810011B0C0708900100003C0000001C000000E80000006E01000000410E108602540D06458D038C048305630AC347CC42CD41C60C0708410B025B0AC342CC45CD41C60C0708460B000000340000005C000000180200008800000000410E108602430D06428C0348830402490AC342CC41C60C0708410B520AC342CC41C60C0708410B100000009400000070020000100000000000000034000000A80000006C020000AC00000000410E108602430D06428D03458C04730ACC44CD41C60C0708410B480ACC49CD41C60C0708410B0010000000E0000000E4020000480000000000000010000000F400000020030000250000000000000000000000554863F64989D24989C948C1E6044C8D04374889E54155415453EB02F3908B3740F6C60175F68B470483F801741A83F8020F84BA00000083F80374755BB8FFFFFFFF415C415D5DC30F01F9669048C1E2204809C2498B4028488B4F084885D278DB448B5F184839D1730A4829CA490FAFD34801D08B4F1C4D8B58208B1739F2759D48D3E8483DFFC99A3B761631D2482D00CA9A3B83C201483DFFC99A3B77EF4901D35B415C4D891A415D5D49890131C0C34C8D25E8E8FFFF418B1C2485DB0F8478FFFFFF4C8B2DDDE8FFFF4C8B1DDEE8FFFF0F01F96690418B0C2439CB75D948C1E2204809D049F7E54C01DAE963FFFFFF8B15A9D8FFFF488D1DA2D8FFFF83E2FE4189D3F605B2D8FFFF010F842BFFFFFF0F01F9669048C1E2204809C24889D00FBE1595D8FFFF482B057AD8FFFF4989C489D1F7D949D3EC89D148D3E085D24C89E28B0D70D8FFFF480F49D04889D048F7E1480FACD020488B0D52D8FFFF8B134139D37599488D1408E9E6FEFFFF6690554889E541544989F4534883EC104885FF74384889FB488D55E0488D4DE831F6488D3D89C8FFFFE864FEFFFF85C0752B488B45E04889038B45E84869C0D34D621048C1E82689C04889430831C04D85E4751F4883C4105B415C5DC34889DF4C89E6B8600000000F054883C4105B415C5DC38B1519C9FFFF418914248B1513C9FFFF4189542404EBCA0F1F840000000000488B0539C8FFFF4885FF7403488907C3554889E541554989F541544189FC83FF0F7731B80100000089F9D3E0A9830800007434488D4E084889F289FE488D3DDDC7FFFFE8B8FDFFFF85C07508415C31C0415D5DC34489E74C89EE415CB8E40000000F05415D5DC3A860751BA81074E5488D4E084889F289FE488D3D91C8FFFFE87CFDFFFFEBC24863CF488D1590C7FFFF4883C10248C1E1044801D1EB02F3908B02A80175F8488B3149897500488B7108498975088B3239F07492EBE30F1F400083FF0F7731B80100000089F98B1536C8FFFFD3E0A98308000074134885F6742548C7060000000031C048895608C3A860750CA81075E5B8E50000000F05C3BA40420F00EBD631C0C39090909090909090B87B0000000F03C0904885FF740A89C281E2FF0F000089174885F67405C1E80C890631C0C313FDFFFF57000000720005050306FDFFFF4F0000003B0005030383FDFFFF45000000720005050376FDFFFF3D0000003B00050303A8FDFFFF3300000072000505039BFDFFFF2B0000003B0005030392FFFFFF2100000016020404010FAEE80F310F01F90FAEE80F310F01F90FAEE80F310F01F9F30FC7F84743433A2028474E552920392E322E3120323031393038323720285265642048617420392E322E312D312900002E7368737472746162002E676E752E68617368002E64796E73796D002E64796E737472002E676E752E76657273696F6E002E676E752E76657273696F6E5F64002E64796E616D6963002E6E6F7465002E65685F6672616D655F686472002E65685F6672616D65002E74657874002E616C74696E737472756374696F6E73002E616C74696E7374725F7265706C6163656D656E74002E636F6D6D656E74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F0000000500000002000000000000002001000000000000200100000000000044000000000000000300000000000000080000000000000004000000000000000B000000F6FFFF6F0200000000000000680100000000000068010000000000005000000000000000030000000000000008000000000000000000000000000000150000000B0000000200000000000000B801000000000000B80100000000000020010000000000000400000001000000080000000000000018000000000000001D000000030000000200000000000000D802000000000000D802000000000000720000000000000000000000000000000100000000000000000000000000000025000000FFFFFF6F02000000000000004A030000000000004A03000000000000180000000000000003000000000000000200000000000000020000000000000032000000FDFFFF6F020000000000000068030000000000006803000000000000380000000000000004000000020000000800000000000000000000000000000041000000060000000300000000000000A003000000000000A00300000000000010010000000000000400000000000000080000000000000010000000000000004A000000070000000200000000000000B004000000000000B004000000000000680000000000000000000000000000000400000000000000000000000000000050000000010000000200000000000000180500000000000018050000000000003C000000000000000000000000000000040000000000000000000000000000005E000000010000000200000000000000580500000000000058050000000000000401000000000000000000000000000008000000000000000000000000000000680000000100000006000000000000006006000000000000600600000000000035030000000000000000000000000000100000000000000000000000000000006E000000010000000200000000000000950900000000000095090000000000005B000000000000000000000000000000010000000000000000000000000000007F000000010000000600000000000000F009000000000000F0090000000000001C000000000000000000000000000000010000000000000000000000000000009500000001000000300000000000000000000000000000000C0A0000000000002C00000000000000000000000000000001000000000000000100000000000000010000000300000000000000000000000000000000000000380A0000000000009E000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ - Start of Memory Range: 0xFFFFFFFFFF600000
+ Content: 48C7C0600000000F05C3CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC48C7C0C90000000F05C3CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC48C7C0350100000F05C3CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+...
diff --git a/lldb/unittests/DAP/Inputs/linux-x86_64.out b/lldb/unittests/DAP/Inputs/linux-x86_64.out
deleted file mode 100755
index 842402fd519d285dd21fd5b1a4040446121a161c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 2575
zcmbtVO>7%Q6n?WC$98^Pr)fo_fMnF7HVCg1WL2Ti#9-1Gr9v&LQ4X|b*WTC`@fxjn
zQHokP1W{Q%Kre8KICAF51(1l;DmQK%aSxGv=%I)UQV-_6`LWkqr>ewA^X9$p{ms1j
z`*Q8_C5<sqO at kF6>0OrNke~pM$G9l5WzZo9(=fqpBLfw3IVp*;BSWhZAjS0*j(V3%
zH0C&`#xoLEBiT~BdgxWg1^ZkyDXqx=1a=+!`ujy-e_i`=?1p`N^_wSq4`=SQPyG8!
zqgZGk7TUMF_t$z>;qF at ZK4h-%b8z=jiWG&m-$CV8;cl^u2Ax9t&)y#g$|Q-Z(yvok
zxZfyg_xE0}cd$<^Hp)$nef|Nkog|x|ipIXh+PsJu^{>$QBpJM&NPey5r^m0Lfz-W)
z<4x3`4(e|V^dBL93-vDr^_xP!p3h%Mohw?t<N2wqv20}1ulrnD`eG?-EM^x33a_EF
zMgf4*0?<0B6*+yHJVHopN{r1S&!R|Hv5#`pEYk(Xl!`BueD-XldV*L+tafj6>=H2j
z6V5jw5+iP$jc?)*-D);5&C7CPyc!6zy`PbaAW<1aM+8mxk!ts at P{_Cn86z-Gb{L&J
zC$1u4)9S$UA`-GkZpV}xuo?DBVs=tb%qM2p at o4e|3~ewyc46|($+L3=<xYM7&K%W3
zkKl9&e{WVhg;mOeFcV_r7)+uDmvsi26^w{W3rG4+M2ekcXL-nY1juE=V5 at T?w#tc?
zI9n>b1~hlZo+PG`@;i+Oj6uV!J4P8**y5VngW25;f9ao%gQeY#Lrp^mtJ!SWuCgYH
zE=npd&POWU at O;O<ShXG7t(Q?W-E!^X&hq*6`D`j(g-i|IGux(RdbNyaw>&7dJk#}{
zT*JKwqjj_4nHG+oE5 at 4QoTg_RRmV3hzrI~b*DGLn_KpXJT`O(5X2S-f+-x*#2ce2>
z`PGu?noiYjDY5QsH5G4KmTP~er0u$c-ogpfi5mPbI*;CT(#2H?zFQ)!daqOx^=>KI
zK!%<~^@geKm?98c__|40D3NBd6Q=UlSPmtCnl#+u(twD|JdjtACDX+L#JP_2UkKq6
z=02oa$F8uTX<SYy95-zH;Sv6CNdL#dpd)Op5g55F=tKd25JR7a^M8t(Fh<4?q<_Be
zDVVVBErbaRuX93f^z|eBRh${r%Tz;_Rq20c2z`346i4lS&~#C5^iML;6e{UmRr`<c
z5N~m$qw;r1fh{A3K2`JX1J7V|tc?1<gJwF;Se^4>T*q^p3qqXN<;N0M=nx4*(q7%B
zVYSY0>M%x<-ml8AP6t_p08Hy2gTH$Lh_h5zEwC>2rBU4p5C2l+G%8LK@#AP8{(kU#
sfh6rz@?+!%?KHBZ at K=w(`|mkE!t{U2N4Zq8S}n!f71J}JWIGl350{SxdH?_b
diff --git a/lldb/unittests/DAP/Inputs/linux-x86_64.out.yaml b/lldb/unittests/DAP/Inputs/linux-x86_64.out.yaml
new file mode 100644
index 0000000000000..b374c57693a4b
--- /dev/null
+++ b/lldb/unittests/DAP/Inputs/linux-x86_64.out.yaml
@@ -0,0 +1,148 @@
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_EXEC
+ Machine: EM_X86_64
+ Entry: 0x400144
+ProgramHeaders:
+ - Type: PT_LOAD
+ Flags: [ PF_X, PF_R ]
+ FirstSec: .note.gnu.build-id
+ LastSec: .eh_frame
+ VAddr: 0x400000
+ Align: 0x200000
+ Offset: 0x0
+ - Type: PT_NOTE
+ Flags: [ PF_R ]
+ FirstSec: .note.gnu.build-id
+ LastSec: .note.gnu.build-id
+ VAddr: 0x4000E8
+ Align: 0x4
+ Offset: 0xE8
+ - Type: PT_GNU_STACK
+ Flags: [ PF_W, PF_R ]
+ Align: 0x10
+ Offset: 0x0
+Sections:
+ - Name: .note.gnu.build-id
+ Type: SHT_NOTE
+ Flags: [ SHF_ALLOC ]
+ Address: 0x4000E8
+ AddressAlign: 0x4
+ Notes:
+ - Name: GNU
+ Desc: 01DF54A6045E657D3F8FFB9CE111878914F8BD6D
+ Type: NT_PRPSINFO
+ - Name: .text
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ Address: 0x40010C
+ AddressAlign: 0x1
+ Content: 554889E548897DE8C645FF62488B45E8C6002F5DC3554889E54883EC2048897DE8488975E0C645FF66488B55E8488B45E04889D7FFD0C9C3554889E54883EC10C645FF5FBE0C014000BF00000000E8C2FFFFFFC9C3
+ - Name: .eh_frame
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ Address: 0x400168
+ AddressAlign: 0x8
+ Content: 1400000000000000017A5200017810011B0C0708900100001C0000001C00000084FFFFFF1500000000410E108602430D06500C07080000001C0000003C00000079FFFFFF2300000000410E108602430D065E0C07080000001C0000005C0000007CFFFFFF1D00000000410E108602430D06580C0708000000
+ - Name: .comment
+ Type: SHT_PROGBITS
+ Flags: [ SHF_MERGE, SHF_STRINGS ]
+ AddressAlign: 0x1
+ EntSize: 0x1
+ Content: 4743433A20285562756E747520342E382E342D327562756E7475317E31342E30342920342E382E3400
+ - Name: .debug_info
+ Type: SHT_PROGBITS
+ AddressAlign: 0x1
+ Content: EC00000004000000000008011300000001070000003F0000000C01400000000000550000000000000000000000026261720001010C014000000000001500000000000000019C65000000030E00000001016500000002915804460001036B00000002916F0005086B0000000601065800000007666F6F00010721014000000000002300000000000000019CB8000000030E00000001076500000002915803000000000107C300000002915004460001096B00000002916F0008C30000000965000000000508B80000000A51000000010D44014000000000001D00000000000000019C044600010F6B00000002916F0000
+ - Name: .debug_abbrev
+ Type: SHT_PROGBITS
+ AddressAlign: 0x1
+ Content: 011101250E130B030E1B0E1101120710170000022E0103083A0B3B0B271911011207401897421901130000030500030E3A0B3B0B49130218000004340003083A0B3B0B491302180000050F000B0B491300000624000B0B3E0B030E0000072E0103083A0B3B0B271911011207401896421901130000081501271901130000090500491300000A2E013F19030E3A0B3B0B2719110112074018964219000000
+ - Name: .debug_line
+ Type: SHT_PROGBITS
+ AddressAlign: 0x1
+ Content: 3F00000002001D0000000101FB0E0D000101010100000001000001006D61696E2E6300000000000009020C0140000000000013834B7531F34BC931834BE50202000101
+Symbols:
+ - Name: .note.gnu.build-id
+ Type: STT_SECTION
+ Section: .note.gnu.build-id
+ Value: 0x4000E8
+ - Name: .text
+ Type: STT_SECTION
+ Section: .text
+ Value: 0x40010C
+ - Name: .eh_frame
+ Type: STT_SECTION
+ Section: .eh_frame
+ Value: 0x400168
+ - Name: .comment
+ Type: STT_SECTION
+ Section: .comment
+ - Name: .debug_aranges
+ Type: STT_SECTION
+ Section: .debug_aranges
+ - Name: .debug_info
+ Type: STT_SECTION
+ Section: .debug_info
+ - Name: .debug_abbrev
+ Type: STT_SECTION
+ Section: .debug_abbrev
+ - Name: .debug_line
+ Type: STT_SECTION
+ Section: .debug_line
+ - Name: .debug_str
+ Type: STT_SECTION
+ Section: .debug_str
+ - Name: main.c
+ Type: STT_FILE
+ Index: SHN_ABS
+ - Name: bar
+ Type: STT_FUNC
+ Section: .text
+ Value: 0x40010C
+ Size: 0x15
+ - Name: foo
+ Type: STT_FUNC
+ Section: .text
+ Value: 0x400121
+ Size: 0x23
+ - Type: STT_FILE
+ Index: SHN_ABS
+ - Name: _start
+ Type: STT_FUNC
+ Section: .text
+ Binding: STB_GLOBAL
+ Value: 0x400144
+ Size: 0x1D
+ - Name: __bss_start
+ Section: .eh_frame
+ Binding: STB_GLOBAL
+ Value: 0x601000
+ - Name: _edata
+ Section: .eh_frame
+ Binding: STB_GLOBAL
+ Value: 0x601000
+ - Name: _end
+ Section: .eh_frame
+ Binding: STB_GLOBAL
+ Value: 0x601000
+DWARF:
+ debug_str:
+ - boomer
+ - main.c
+ - boom
+ - 'GNU C 4.8.4 -mtune=generic -march=x86-64 -g'
+ - '/home/labath/test'
+ - _start
+ - char
+ debug_aranges:
+ - Length: 0x2C
+ Version: 2
+ CuOffset: 0x0
+ AddressSize: 0x8
+ Descriptors:
+ - Address: 0x40010C
+ Length: 0x55
+...
diff --git a/lldb/unittests/DAP/TestBase.cpp b/lldb/unittests/DAP/TestBase.cpp
index 1c58c351776ec..d4b3d93a44884 100644
--- a/lldb/unittests/DAP/TestBase.cpp
+++ b/lldb/unittests/DAP/TestBase.cpp
@@ -62,6 +62,13 @@ void DAPTestBase::SetUp() {
/*transport=*/*to_dap);
}
+void DAPTestBase::TearDown() {
+ if (core)
+ ASSERT_THAT_ERROR(core->discard(), Succeeded());
+ if (binary)
+ ASSERT_THAT_ERROR(binary->discard(), Succeeded());
+}
+
void DAPTestBase::SetUpTestSuite() {
lldb::SBError error = SBDebugger::InitializeWithErrorHandling();
EXPECT_TRUE(error.Success());
@@ -89,13 +96,22 @@ void DAPTestBase::CreateDebugger() {
ASSERT_TRUE(dap->debugger);
}
-void DAPTestBase::LoadCore(llvm::StringRef binary, llvm::StringRef core) {
+void DAPTestBase::LoadCore() {
ASSERT_TRUE(dap->debugger);
- dap->target =
- dap->debugger.CreateTarget(lldb_private::GetInputFilePath(binary).data());
+ llvm::Expected<lldb_private::TestFile> binary_yaml = lldb_private::TestFile::fromYamlFile(k_linux_binary);
+ ASSERT_THAT_EXPECTED(binary_yaml, Succeeded());
+ llvm::Expected<llvm::sys::fs::TempFile> binary_file = binary_yaml->writeToTemporaryFile();
+ ASSERT_THAT_EXPECTED(binary_file, Succeeded());
+ binary = std::move(*binary_file);
+ dap->target = dap->debugger.CreateTarget(binary->TmpName.data());
ASSERT_TRUE(dap->target);
+ llvm::Expected<lldb_private::TestFile> core_yaml = lldb_private::TestFile::fromYamlFile(k_linux_core);
+ ASSERT_THAT_EXPECTED(core_yaml, Succeeded());
+ llvm::Expected<llvm::sys::fs::TempFile> core_file = core_yaml->writeToTemporaryFile();
+ ASSERT_THAT_EXPECTED(core_file, Succeeded());
+ this->core = std::move(*core_file);
SBProcess process =
- dap->target.LoadCore(lldb_private::GetInputFilePath(core).data());
+ dap->target.LoadCore(this->core->TmpName.data());
ASSERT_TRUE(process);
}
diff --git a/lldb/unittests/DAP/TestBase.h b/lldb/unittests/DAP/TestBase.h
index c6c261fa2b64c..70b3985271a92 100644
--- a/lldb/unittests/DAP/TestBase.h
+++ b/lldb/unittests/DAP/TestBase.h
@@ -47,17 +47,20 @@ inline auto OutputMatcher(const llvm::StringRef output,
class DAPTestBase : public TransportBase {
protected:
std::unique_ptr<lldb_dap::DAP> dap;
+ std::optional<llvm::sys::fs::TempFile> core;
+ std::optional<llvm::sys::fs::TempFile> binary;
- static constexpr llvm::StringLiteral k_linux_binary = "linux-x86_64.out";
- static constexpr llvm::StringLiteral k_linux_core = "linux-x86_64.core";
+ static constexpr llvm::StringLiteral k_linux_binary = "linux-x86_64.out.yaml";
+ static constexpr llvm::StringLiteral k_linux_core = "linux-x86_64.core.yaml";
static void SetUpTestSuite();
static void TeatUpTestSuite();
void SetUp() override;
+ void TearDown() override;
bool GetDebuggerSupportsTarget(llvm::StringRef platform);
void CreateDebugger();
- void LoadCore(llvm::StringRef binary, llvm::StringRef core);
+ void LoadCore();
/// Closes the DAP output pipe and returns the remaining protocol messages in
/// the buffer.
diff --git a/lldb/unittests/TestingSupport/TestUtilities.cpp b/lldb/unittests/TestingSupport/TestUtilities.cpp
index efdc6c5eb234a..32933a38306fd 100644
--- a/lldb/unittests/TestingSupport/TestUtilities.cpp
+++ b/lldb/unittests/TestingSupport/TestUtilities.cpp
@@ -47,3 +47,12 @@ llvm::Expected<TestFile> TestFile::fromYamlFile(const llvm::Twine &Name) {
return llvm::errorCodeToError(BufferOrError.getError());
return fromYaml(BufferOrError.get()->getBuffer());
}
+
+llvm::Expected<llvm::sys::fs::TempFile> TestFile::writeToTemporaryFile() {
+ llvm::Expected<llvm::sys::fs::TempFile> Temp =
+ llvm::sys::fs::TempFile::create("temp%%%%%%%%%%%%%%%%");
+ if (!Temp)
+ return Temp.takeError();
+ llvm::raw_fd_ostream(Temp->FD, /*shouldClose=*/false) << Buffer;
+ return std::move(*Temp);
+}
diff --git a/lldb/unittests/TestingSupport/TestUtilities.h b/lldb/unittests/TestingSupport/TestUtilities.h
index 7d040d64db8d8..65994384059fb 100644
--- a/lldb/unittests/TestingSupport/TestUtilities.h
+++ b/lldb/unittests/TestingSupport/TestUtilities.h
@@ -14,6 +14,7 @@
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Support/Error.h"
+#include "llvm/Support/FileSystem.h"
#include "llvm/Support/FileUtilities.h"
#include <string>
@@ -45,6 +46,8 @@ class TestFile {
return ModuleSpec(FileSpec(), UUID(), dataBuffer());
}
+ llvm::Expected<llvm::sys::fs::TempFile> writeToTemporaryFile();
+
private:
TestFile(std::string &&Buffer) : Buffer(std::move(Buffer)) {}
>From 25f05e66a6d4322673c806c78766fdf5eab413e3 Mon Sep 17 00:00:00 2001
From: John Harrison <harjohn at google.com>
Date: Wed, 21 May 2025 12:06:26 -0700
Subject: [PATCH 3/3] Applying clang-format.
---
lldb/unittests/DAP/TestBase.cpp | 15 +++++++++------
lldb/unittests/TestingSupport/TestUtilities.cpp | 2 +-
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/lldb/unittests/DAP/TestBase.cpp b/lldb/unittests/DAP/TestBase.cpp
index d4b3d93a44884..388d1b901507e 100644
--- a/lldb/unittests/DAP/TestBase.cpp
+++ b/lldb/unittests/DAP/TestBase.cpp
@@ -98,20 +98,23 @@ void DAPTestBase::CreateDebugger() {
void DAPTestBase::LoadCore() {
ASSERT_TRUE(dap->debugger);
- llvm::Expected<lldb_private::TestFile> binary_yaml = lldb_private::TestFile::fromYamlFile(k_linux_binary);
+ llvm::Expected<lldb_private::TestFile> binary_yaml =
+ lldb_private::TestFile::fromYamlFile(k_linux_binary);
ASSERT_THAT_EXPECTED(binary_yaml, Succeeded());
- llvm::Expected<llvm::sys::fs::TempFile> binary_file = binary_yaml->writeToTemporaryFile();
+ llvm::Expected<llvm::sys::fs::TempFile> binary_file =
+ binary_yaml->writeToTemporaryFile();
ASSERT_THAT_EXPECTED(binary_file, Succeeded());
binary = std::move(*binary_file);
dap->target = dap->debugger.CreateTarget(binary->TmpName.data());
ASSERT_TRUE(dap->target);
- llvm::Expected<lldb_private::TestFile> core_yaml = lldb_private::TestFile::fromYamlFile(k_linux_core);
+ llvm::Expected<lldb_private::TestFile> core_yaml =
+ lldb_private::TestFile::fromYamlFile(k_linux_core);
ASSERT_THAT_EXPECTED(core_yaml, Succeeded());
- llvm::Expected<llvm::sys::fs::TempFile> core_file = core_yaml->writeToTemporaryFile();
+ llvm::Expected<llvm::sys::fs::TempFile> core_file =
+ core_yaml->writeToTemporaryFile();
ASSERT_THAT_EXPECTED(core_file, Succeeded());
this->core = std::move(*core_file);
- SBProcess process =
- dap->target.LoadCore(this->core->TmpName.data());
+ SBProcess process = dap->target.LoadCore(this->core->TmpName.data());
ASSERT_TRUE(process);
}
diff --git a/lldb/unittests/TestingSupport/TestUtilities.cpp b/lldb/unittests/TestingSupport/TestUtilities.cpp
index 32933a38306fd..b53822e38324b 100644
--- a/lldb/unittests/TestingSupport/TestUtilities.cpp
+++ b/lldb/unittests/TestingSupport/TestUtilities.cpp
@@ -50,7 +50,7 @@ llvm::Expected<TestFile> TestFile::fromYamlFile(const llvm::Twine &Name) {
llvm::Expected<llvm::sys::fs::TempFile> TestFile::writeToTemporaryFile() {
llvm::Expected<llvm::sys::fs::TempFile> Temp =
- llvm::sys::fs::TempFile::create("temp%%%%%%%%%%%%%%%%");
+ llvm::sys::fs::TempFile::create("temp%%%%%%%%%%%%%%%%");
if (!Temp)
return Temp.takeError();
llvm::raw_fd_ostream(Temp->FD, /*shouldClose=*/false) << Buffer;
More information about the lldb-commits
mailing list