DbgEngTTDAdapter::Start() never queries IDebugDataSpaces2, leaving it null for the whole TTD session
Los mantenedores suelen responder en 3 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- cpp
- Área
- devtools, reverse-engineering
Línea de trabajo
Start in core/adapters/dbgengadapter.cpp at ConnectToDebugServerInternal() and GetMemoryMap(), then locate DbgEngTTDAdapter::Start() and Reset(). Add the interface queries and cleanup described in the issue, preserve the existing live-debug behavior, and verify that both interfaces are available for TTD; the payload notes that an in-tree build has not yet been done.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
DbgEngTTDAdapter::Start() creates its own IDebugClient7 and queries the interfaces it needs, but it omits IDebugDataSpaces2. The base class only ever queries that interface in DbgEngAdapter::ConnectToDebugServerInternal() (core/adapters/dbgengadapter.cpp:333), and the TTD adapter never goes through that path — it opens the trace with OpenDumpFile() instead.
Result: m_debugDataSpaces2 stays nullptr for the entire TTD session, and any code that depends on it silently does nothing rather than failing visibly.
The reachable consequence today is DbgEngAdapter::GetMemoryMap(), which begins with:
if (!this->m_debugDataSpaces2)
return {};
so under TTD it returns an empty map without ever calling into dbgeng. That surfaces as the empty memory map widget in #1132 — though note that issue is not fixed by this: IDebugDataSpaces2::QueryVirtual is also unimplemented for TTD replay targets, so the walk fails even with a valid interface pointer (see the analysis in https://github.com/Vector35/debugger/issues/1132#issuecomment-5072450325). This is the separate, latent half of that investigation, worth fixing on its own so the interface is available when something needs it and so the null-pointer path stops masking real behavior.
Fix
Query IDebugDataSpaces2 in DbgEngTTDAdapter::Start() (and release it in Reset()). Also adds IDebugDataSpaces4, which unlike QueryVirtual does work on TTD traces — GetValidRegionVirtual, GetNextDifferentlyValidOffsetVirtual and GetOffsetInformation all function there and are useful for validating an address range — wired on both the live-debug and TTD paths.
Verification
No behavior change is expected for live DbgEng debugging (that path already queried IDebugDataSpaces2; IDebugDataSpaces4 is additive). Under TTD, m_debugDataSpaces2/4 become non-null.
Both QueryInterface(__uuidof(IDebugDataSpaces2), ...) and IDebugDataSpaces4 were confirmed to return S_OK against a TTD trace using the pinned WinDbg's dbgeng.dll (TTD 1.01.11, release 1.11.592.0) in a standalone harness. Note QUERY_DEBUG_INTERFACE throws on failure, so this matters: both interfaces have existed since the earliest dbgeng versions we support, and both were observed available.
Not yet built in-tree.
- Lenguaje dominante
- C++
- Estrellas
- 333
- Forks
- 33
- Merge medio
- 5 d 13 h
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Vector35/debugger
-
LLDB Adapter leaks breakpointsAbiertobug Effort: Trivial
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 3 días
-
bug Effort: Trivial Impact: Low
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 3 días
-
fix wine documentation linkAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
Los mantenedores suelen responder en 3 días
-
Effort: Trivial enhancement UI
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Vector35/debugger#1148 · 1 comentario ·
Los mantenedores suelen responder en 3 días
Todos los issues de Vector35/debugger
Issues similares
-
Feature
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
Narezzurri/OpenVPN-Config-Manager#95 ·
Los mantenedores suelen responder en 1 día
-
bot-found bug priority: P1
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
madenvel/KalinkaPlayer#251 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
sqlitebrowser/sqlitebrowser#4208 ·
-
ROSES ROSES - Student Review
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
area/ysql kind/bug priority/medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
yugabyte/yugabyte-db#34552 ·
Los mantenedores suelen responder en 1 día