summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2011-12-19 22:51:27 +0000
committerJohnny Chen <johnny.chen@apple.com>2011-12-19 22:51:27 +0000
commitfee6e493b0062930f091847e68f14d9fc2bbd4bb (patch)
tree10d12f6d3594a062d31a08cc8ee8759f8bdc42cb
parent5894a9138c188766e109f1d7de48c3d1fee0cec6 (diff)
downloadbcm5719-llvm-fee6e493b0062930f091847e68f14d9fc2bbd4bb.tar.gz
bcm5719-llvm-fee6e493b0062930f091847e68f14d9fc2bbd4bb.zip
Work in progress for:
rdar://problem/10577182 Audit lldb API impl for places where we need to perform a NULL check Add NULL checks for SBDebugger APIs. llvm-svn: 146917
-rw-r--r--lldb/source/Core/UserSettingsController.cpp14
-rw-r--r--lldb/test/python_api/debugger/TestDebuggerAPI.py30
2 files changed, 41 insertions, 3 deletions
diff --git a/lldb/source/Core/UserSettingsController.cpp b/lldb/source/Core/UserSettingsController.cpp
index 91e4f0beb30..65c263f396e 100644
--- a/lldb/source/Core/UserSettingsController.cpp
+++ b/lldb/source/Core/UserSettingsController.cpp
@@ -280,7 +280,9 @@ UserSettingsController::SetVariable (const char *full_dot_name,
ConstString const_var_name;
const ConstString &default_name = InstanceSettings::GetDefaultName();
- Args names = UserSettingsController::BreakNameIntoPieces (full_dot_name);
+ Args names;
+ if (full_dot_name )
+ names = UserSettingsController::BreakNameIntoPieces (full_dot_name);
int num_pieces = names.GetArgumentCount();
if (num_pieces < 1)
@@ -538,12 +540,18 @@ UserSettingsController::GetVariable
Error &err
)
{
- Args names = UserSettingsController::BreakNameIntoPieces (full_dot_name);
- ConstString const_var_name;
StringList value;
+ if (!full_dot_name)
+ {
+ err.SetErrorString ("invalid variable name");
+ return value;
+ }
+ Args names = UserSettingsController::BreakNameIntoPieces (full_dot_name);
int num_pieces = names.GetArgumentCount();
+ ConstString const_var_name;
+
ConstString prefix (names.GetArgumentAtIndex (0));
const_var_name.SetCString (names.GetArgumentAtIndex (num_pieces - 1));
diff --git a/lldb/test/python_api/debugger/TestDebuggerAPI.py b/lldb/test/python_api/debugger/TestDebuggerAPI.py
new file mode 100644
index 00000000000..b9d169e244a
--- /dev/null
+++ b/lldb/test/python_api/debugger/TestDebuggerAPI.py
@@ -0,0 +1,30 @@
+"""
+Test Debugger APIs.
+"""
+
+import os, time
+import re
+import unittest2
+import lldb, lldbutil
+from lldbtest import *
+
+class DebuggerAPITestCase(TestBase):
+
+ mydir = os.path.join("python_api", "debugger")
+
+ @python_api_test
+ def test_debugger_api_boundary_condition(self):
+ """Exercise SBDebugger APIs with boundary conditions."""
+ self.dbg.HandleCommand(None)
+ self.dbg.SetDefaultArchitecture(None)
+ self.dbg.GetScriptingLanguage(None)
+ self.dbg.CreateTarget(None)
+ self.dbg.CreateTarget(None, None, None, True, lldb.SBError())
+ self.dbg.CreateTargetWithFileAndTargetTriple(None, None)
+ self.dbg.CreateTargetWithFileAndArch(None, None)
+ self.dbg.FindTargetWithFileAndArch(None, None)
+ self.dbg.SetInternalVariable(None, None, None)
+ self.dbg.GetInternalVariableValue(None, None)
+ self.dbg.SetPrompt(None)
+ self.dbg.SetCurrentPlatform(None)
+ self.dbg.SetCurrentPlatformSDKRoot(None)
OpenPOWER on IntegriCloud