@@ -176,28 +176,37 @@ DumpWriter::WriteDump()
176
176
size_t size = memoryRegion.Size ();
177
177
total += size;
178
178
179
- while (size > 0 )
179
+ if (address == SpecialDiagInfoAddress )
180
180
{
181
- size_t bytesToRead = std::min (size, sizeof (m_tempBuffer));
182
- size_t read = 0 ;
183
-
184
- if (!m_crashInfo.ReadProcessMemory ((void *)address, m_tempBuffer, bytesToRead, &read)) {
185
- printf_error (" Error reading memory at %" PRIA PRIx64 " size %08zx FAILED %s (%d)\n " , address, bytesToRead, strerror (g_readProcessMemoryErrno), g_readProcessMemoryErrno);
181
+ if (!WriteDiagInfo (size)) {
186
182
return false ;
187
183
}
188
-
189
- // This can happen if the target process dies before createdump is finished
190
- if (read == 0 ) {
191
- printf_error (" Error reading memory at %" PRIA PRIx64 " size %08zx returned 0 bytes read: %s (%d)\n " , address, bytesToRead, strerror (g_readProcessMemoryErrno), g_readProcessMemoryErrno);
192
- return false ;
193
- }
194
-
195
- if (!WriteData (m_tempBuffer, read)) {
196
- return false ;
184
+ }
185
+ else
186
+ {
187
+ while (size > 0 )
188
+ {
189
+ size_t bytesToRead = std::min (size, sizeof (m_tempBuffer));
190
+ size_t read = 0 ;
191
+
192
+ if (!m_crashInfo.ReadProcessMemory ((void *)address, m_tempBuffer, bytesToRead, &read)) {
193
+ printf_error (" Error reading memory at %" PRIA PRIx64 " size %08zx FAILED %s (%d)\n " , address, bytesToRead, strerror (g_readProcessMemoryErrno), g_readProcessMemoryErrno);
194
+ return false ;
195
+ }
196
+
197
+ // This can happen if the target process dies before createdump is finished
198
+ if (read == 0 ) {
199
+ printf_error (" Error reading memory at %" PRIA PRIx64 " size %08zx returned 0 bytes read: %s (%d)\n " , address, bytesToRead, strerror (g_readProcessMemoryErrno), g_readProcessMemoryErrno);
200
+ return false ;
201
+ }
202
+
203
+ if (!WriteData (m_tempBuffer, read)) {
204
+ return false ;
205
+ }
206
+
207
+ address += read;
208
+ size -= read;
197
209
}
198
-
199
- address += read;
200
- size -= read;
201
210
}
202
211
}
203
212
0 commit comments