@@ -327,17 +327,19 @@ func TestProcFilter(t *testing.T) {
327327
328328func TestThreadFilter (t * testing.T ) {
329329 kpars := kevent.Kparams {
330- kparams .ProcessID : {Name : kparams .ProcessID , Type : kparams .PID , Value : uint32 (os .Getpid ())},
331- kparams .ThreadID : {Name : kparams .ThreadID , Type : kparams .TID , Value : uint32 (3453 )},
332- kparams .BasePrio : {Name : kparams .BasePrio , Type : kparams .Uint8 , Value : uint8 (13 )},
333- kparams .StartAddress : {Name : kparams .StartAddress , Type : kparams .Address , Value : uint64 (140729524944768 )},
334- kparams .TEB : {Name : kparams .TEB , Type : kparams .Address , Value : uint64 (614994620416 )},
335- kparams .IOPrio : {Name : kparams .IOPrio , Type : kparams .Uint8 , Value : uint8 (2 )},
336- kparams .KstackBase : {Name : kparams .KstackBase , Type : kparams .Address , Value : uint64 (18446677035730165760 )},
337- kparams .KstackLimit : {Name : kparams .KstackLimit , Type : kparams .Address , Value : uint64 (18446677035730137088 )},
338- kparams .PagePrio : {Name : kparams .PagePrio , Type : kparams .Uint8 , Value : uint8 (5 )},
339- kparams .UstackBase : {Name : kparams .UstackBase , Type : kparams .Address , Value : uint64 (86376448 )},
340- kparams .UstackLimit : {Name : kparams .UstackLimit , Type : kparams .Address , Value : uint64 (86372352 )},
330+ kparams .ProcessID : {Name : kparams .ProcessID , Type : kparams .PID , Value : uint32 (os .Getpid ())},
331+ kparams .ThreadID : {Name : kparams .ThreadID , Type : kparams .TID , Value : uint32 (3453 )},
332+ kparams .BasePrio : {Name : kparams .BasePrio , Type : kparams .Uint8 , Value : uint8 (13 )},
333+ kparams .StartAddress : {Name : kparams .StartAddress , Type : kparams .Address , Value : uint64 (140729524944768 )},
334+ kparams .TEB : {Name : kparams .TEB , Type : kparams .Address , Value : uint64 (614994620416 )},
335+ kparams .IOPrio : {Name : kparams .IOPrio , Type : kparams .Uint8 , Value : uint8 (2 )},
336+ kparams .KstackBase : {Name : kparams .KstackBase , Type : kparams .Address , Value : uint64 (18446677035730165760 )},
337+ kparams .KstackLimit : {Name : kparams .KstackLimit , Type : kparams .Address , Value : uint64 (18446677035730137088 )},
338+ kparams .PagePrio : {Name : kparams .PagePrio , Type : kparams .Uint8 , Value : uint8 (5 )},
339+ kparams .UstackBase : {Name : kparams .UstackBase , Type : kparams .Address , Value : uint64 (86376448 )},
340+ kparams .UstackLimit : {Name : kparams .UstackLimit , Type : kparams .Address , Value : uint64 (86372352 )},
341+ kparams .StartAddressSymbol : {Name : kparams .StartAddressSymbol , Type : kparams .UnicodeString , Value : "LoadImage" },
342+ kparams .StartAddressModule : {Name : kparams .StartAddressModule , Type : kparams .UnicodeString , Value : "C:\\ Windows\\ System32\\ kernel32.dll" },
341343 }
342344 kevt := & kevent.Kevent {
343345 Type : ktypes .CreateThread ,
@@ -396,6 +398,8 @@ func TestThreadFilter(t *testing.T) {
396398 {`length(thread.callstack.callsite_leading_assembly) > 0` , true },
397399 {`thread.callstack.callsite_trailing_assembly matches ('*mov r10, rcx|mov eax, 0x*|syscall*')` , true },
398400 {`thread.callstack.is_unbacked` , true },
401+ {`thread.start_address.symbol = 'LoadImage'` , true },
402+ {`thread.start_address.module = 'C:\\Windows\\System32\\kernel32.dll'` , true },
399403
400404 {`foreach(thread._callstack, $frame, $frame.address = '2638e59e0a5' or $frame.address = '7ffb5c1d0396')` , true },
401405 {`foreach(thread._callstack, $frame, $frame.address = 'fffff8072ebc1f6f' or $frame.address = 'fffff8072eb8961b')` , true },
0 commit comments