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
This commit is contained in:
Johnny Chen 2011-12-19 22:51:27 +00:00
parent 5894a9138c
commit fee6e493b0
2 changed files with 41 additions and 3 deletions

View File

@ -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));

View File

@ -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)