Skip to content

Commit 8124878

Browse files
committed
Fix a crash when querying TTD Calls with a start and end address
1 parent a29db8a commit 8124878

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

core/adapters/dbgengttdadapter.cpp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,14 +1052,25 @@ bool DbgEngTTDAdapter::ParseTTDCallObjects(const std::string& expression, std::v
10521052
try
10531053
{
10541054
LogInfo("Parsing TTD call objects from expression: %s", expression.c_str());
1055-
1055+
1056+
// Convert expression to wide string
1057+
std::wstring wExpression(expression.begin(), expression.end());
1058+
1059+
// Create context for evaluation
1060+
ComPtr<IDebugHostContext> hostContext;
1061+
if (FAILED(m_debugHost->GetCurrentContext(hostContext.GetAddressOf())))
1062+
{
1063+
LogError("Failed to get current debug host context");
1064+
return "";
1065+
}
1066+
10561067
// Execute the expression to get call objects
10571068
ComPtr<IModelObject> resultObject;
10581069
ComPtr<IKeyStore> metadataKeyStore;
10591070

10601071
HRESULT hr = m_hostEvaluator->EvaluateExtendedExpression(
1061-
nullptr, // context
1062-
_bstr_t(expression.c_str()).GetBSTR(),
1072+
hostContext.Get(),
1073+
wExpression.c_str(),
10631074
nullptr, // bindingContext
10641075
&resultObject,
10651076
&metadataKeyStore

ui/ttdcallswidget.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,10 @@ void TTDCallsQueryWidget::setupUI()
9090
auto addressLayout = new QHBoxLayout();
9191
m_startAddressEdit = new QLineEdit();
9292
m_startAddressEdit->setPlaceholderText("Start address (hex, optional)");
93-
m_startAddressEdit->setEnabled(false); // Temporarily disabled due to crashes
93+
m_startAddressEdit->setEnabled(true);
9494
m_endAddressEdit = new QLineEdit();
9595
m_endAddressEdit->setPlaceholderText("End address (hex, optional)");
96-
m_endAddressEdit->setEnabled(false); // Temporarily disabled due to crashes
96+
m_endAddressEdit->setEnabled(true);
9797
addressLayout->addWidget(new QLabel("Return Address Range:"));
9898
addressLayout->addWidget(m_startAddressEdit);
9999
addressLayout->addWidget(new QLabel("to"));

0 commit comments

Comments
 (0)