Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c3b68f9
chore(deps): update rust crate memmap2 to v0.9.7 (#601)
renovate[bot] Jul 14, 2025
608e89d
fix(deps): update golang.org/x/exp digest to 6ae5c78 (#600)
renovate[bot] Jul 14, 2025
3b5d89e
interpreters, reporter: intern symbolization strings (#563)
fabled Jul 14, 2025
bb42a21
process: fix conflicting changes between interning PR creation and me…
fabled Jul 14, 2025
30a31ab
Fix luajit interning
gnurizen Aug 12, 2025
92211ae
dotnet blobs: reduce the blob size of dotnet prog (#586)
tsint Jul 14, 2025
405b8de
reporter: Do not generate unique dummy mappings (#598)
christos68k Jul 14, 2025
b3344be
php: cgo-less amd routine decoders (#604)
korniltsev Jul 14, 2025
68c626d
tpbase: codeql fixes (#605)
korniltsev Jul 14, 2025
13f9d3f
Do not generate multiuse functions for coredumps (#614)
korniltsev Jul 16, 2025
cc120db
coredump: make bpf_log void (#615)
korniltsev Jul 16, 2025
f8f68b4
fix(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v…
renovate[bot] Jul 16, 2025
c705f29
go_labels: remove unused ctx arg (#616)
korniltsev Jul 16, 2025
c2a8960
tpbase: cgo-less amd routine decoders (#602)
korniltsev Jul 16, 2025
90c48f9
remotememory: allow compiling on non linux systems (#612)
korniltsev Jul 16, 2025
db6c2f9
ebpf: use features.BPF_F_NO_PREALLOC constant (#623)
korniltsev Jul 16, 2025
cceeaa9
Dockerfile: add clang-format-17 (#619)
korniltsev Jul 16, 2025
f8ce195
Remove Zydis (#617)
fabled Jul 16, 2025
495567f
php: recognize apache2 libphp.so as loader (#626)
danielpacak Jul 17, 2025
696eb3e
coredump: remove dummyMaps as unused (#627)
korniltsev Jul 17, 2025
d096854
fix(deps): update module google.golang.org/grpc to v1.74.0 (#629)
renovate[bot] Jul 17, 2025
59e5795
tracer: Add limit to number of trace events processed in one batch (#…
christos68k Jul 17, 2025
df65706
fix(deps): update go dependencies (#632)
renovate[bot] Jul 18, 2025
3c797f0
pdata: add tests for Generate() (#631)
florianl Jul 18, 2025
249e740
Remove luajit legal bits
gnurizen Sep 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ RUN cross_debian_arch=$(uname -m | sed -e 's/aarch64/amd64/' -e 's/x86_64/arm64
cross_pkg_arch=$(uname -m | sed -e 's/aarch64/x86-64/' -e 's/x86_64/aarch64/'); \
apt-get update -y && \
apt-get dist-upgrade -y && \
apt-get install -y curl wget make git cmake clang-17 unzip libc6-dev g++ gcc pkgconf \
apt-get install -y --no-install-recommends --no-install-suggests \
curl wget make git cmake unzip libc6-dev g++ gcc pkgconf \
clang-17 clang-format-17 \
gcc-${cross_pkg_arch}-linux-gnu libc6-${cross_debian_arch}-cross \
musl-dev:amd64 musl-dev:arm64 && \
apt-get clean autoclean && \
Expand Down
56 changes: 0 additions & 56 deletions LICENSES/luajit/COPYRIGHT

This file was deleted.

23 changes: 0 additions & 23 deletions LICENSES/zyantific/zydis/LICENSE

This file was deleted.

1 change: 0 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,6 @@ debug-agent:
legal:
@go install github.com/google/go-licenses@latest
@go-licenses save --force . --save_path=LICENSES
@./legal/add-non-go.sh legal/non-go-dependencies.json LICENSES

codespell:
@codespell
33 changes: 21 additions & 12 deletions armhelpers/arm_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func Xreg2num(arg interface{}) (int, bool) {
if !ok {
return 0, false
}
ndx = aa.Reg(n)
ndx = n
default:
return 0, false
}
Expand All @@ -46,7 +46,9 @@ func Xreg2num(arg interface{}) (int, bool) {

// DecodeRegister converts the result of calling Reg.String()
// into the initial register's value.
func DecodeRegister(reg string) (uint64, bool) {
func DecodeRegister(reg string) (aa.Reg, bool) {
const maxRegister = uint64(aa.V31)

// This function is essentially just the inverse
// of https://cs.opensource.google/go/x/arch/+/fc48f9fe:arm64/arm64asm/inst.go;l=335
length := len(reg)
Expand All @@ -65,7 +67,10 @@ func DecodeRegister(reg string) (uint64, bool) {
if err != nil {
return 0, false
}
return val, true
if val > maxRegister {
return 0, false
}
return aa.Reg(val), true
}

// Otherwise, we want to strip out the
Expand Down Expand Up @@ -98,16 +103,20 @@ func DecodeRegister(reg string) (uint64, bool) {
return 0, false
}

return val + regOffset, true
res := val + regOffset
if res > maxRegister {
return 0, false
}
return aa.Reg(res), true
}

// DecodeImmediate converts an arm64asm Arg of immediate type to it's value.
func DecodeImmediate(arg aa.Arg) (uint64, bool) {
func DecodeImmediate(arg aa.Arg) (int64, bool) {
switch val := arg.(type) {
case aa.Imm:
return uint64(val.Imm), true
return int64(val.Imm), true
case aa.PCRel:
return uint64(val), true
return int64(val), true
case aa.MemImmediate:
// The MemImmediate layout changes quite
// a bit depending on its mode.
Expand Down Expand Up @@ -139,13 +148,13 @@ func DecodeImmediate(arg aa.Arg) (uint64, bool) {
// Note that the second %s here is the print
// format from a register. Annoyingly this isn't a
// register type, so we have to unwind it manually
val, err := DecodeRegister(fields[1])
if !err {
reg, ok := DecodeRegister(fields[1])
if !ok {
return 0, false
}
// The Go disassembler always adds X0 here.
// See https://cs.opensource.google/go/x/arch/+/fc48f9fe:arm64/arm64asm/inst.go;l=526
return val - uint64(aa.X0), true
return int64(reg - aa.X0), true
}

// Otherwise all of the strings end with a ], so we just parse
Expand All @@ -156,12 +165,12 @@ func DecodeImmediate(arg aa.Arg) (uint64, bool) {
if err != nil {
return 0, false
}
return uint64(out), true
return out, true

case aa.ImmShift:
// Sadly, ImmShift{} does not have public fields.
// https://github.com/golang/go/issues/51517
var imm uint64
var imm int64
n, err := fmt.Sscanf(val.String(), "#%v", &imm)
if err != nil || n != 1 {
return 0, false
Expand Down
14 changes: 7 additions & 7 deletions asm/amd/interpreter.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,13 @@ func (i *Interpreter) Step() (x86asm.Inst, error) {
switch inst.Op {
case x86asm.ADD:
if dst, ok := inst.Args[0].(x86asm.Reg); ok {
left := i.Regs.getX86asm(dst)
left := i.Regs.GetX86(dst)
switch src := inst.Args[1].(type) {
case x86asm.Imm:
right := expression.Imm(uint64(src))
i.Regs.setX86asm(dst, expression.Add(left, right))
case x86asm.Reg:
right := i.Regs.getX86asm(src)
right := i.Regs.GetX86(src)
i.Regs.setX86asm(dst, expression.Add(left, right))
case x86asm.Mem:
right := i.MemArg(src)
Expand All @@ -98,7 +98,7 @@ func (i *Interpreter) Step() (x86asm.Inst, error) {
if dst, ok := inst.Args[0].(x86asm.Reg); ok {
if src, imm := inst.Args[1].(x86asm.Imm); imm {
v := expression.Multiply(
i.Regs.getX86asm(dst),
i.Regs.GetX86(dst),
expression.Imm(uint64(math.Pow(2, float64(src)))),
)
i.Regs.setX86asm(dst, v)
Expand All @@ -110,7 +110,7 @@ func (i *Interpreter) Step() (x86asm.Inst, error) {
case x86asm.Imm:
i.Regs.setX86asm(dst, expression.Imm(uint64(src)))
case x86asm.Reg:
i.Regs.setX86asm(dst, i.Regs.getX86asm(src))
i.Regs.setX86asm(dst, i.Regs.GetX86(src))
case x86asm.Mem:
v := i.MemArg(src)

Expand All @@ -137,7 +137,7 @@ func (i *Interpreter) Step() (x86asm.Inst, error) {
if dst, ok := inst.Args[0].(x86asm.Reg); ok {
if src, imm := inst.Args[1].(x86asm.Imm); imm {
if src == 3 { // todo other cases
i.Regs.setX86asm(dst, expression.ZeroExtend(i.Regs.getX86asm(dst), 2))
i.Regs.setX86asm(dst, expression.ZeroExtend(i.Regs.GetX86(dst), 2))
}
}
}
Expand All @@ -159,11 +159,11 @@ func (i *Interpreter) MemArg(src x86asm.Mem) expression.Expression {
vs = append(vs, expression.Imm(uint64(src.Disp)))
}
if src.Base != 0 {
vs = append(vs, i.Regs.getX86asm(src.Base))
vs = append(vs, i.Regs.GetX86(src.Base))
}
if src.Index != 0 {
v := expression.Multiply(
i.Regs.getX86asm(src.Index),
i.Regs.GetX86(src.Index),
expression.Imm(uint64(src.Scale)),
)
vs = append(vs, v)
Expand Down
5 changes: 4 additions & 1 deletion asm/amd/regs_state.go
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,9 @@ func (r *Registers) setX86asm(reg x86asm.Reg, v expression.Expression) {
r.regs[e.idx] = v
}

func (r *Registers) getX86asm(reg x86asm.Reg) expression.Expression {
// GetX86 returns the expression.Expression value associated with the given x86asm.Reg, with
// appropriate zero-extension if necessary.
func (r *Registers) GetX86(reg x86asm.Reg) expression.Expression {
e := regMappingFor(reg)
res := r.regs[e.idx]
if e.bits != 64 {
Expand All @@ -224,6 +226,7 @@ func (r *Registers) getX86asm(reg x86asm.Reg) expression.Expression {
return res
}

// Get returns the expression.Expression value associated with the given Reg register
func (r *Registers) Get(reg Reg) expression.Expression {
if int(reg) >= len(r.regs) {
return r.regs[0]
Expand Down
4 changes: 2 additions & 2 deletions asm/expression/expression.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ func cmpOrder(u Expression) int {
return 1
case *op:
return 2
case *ImmediateCapture:
return 3
case *named:
return 3
case *ImmediateCapture:
return 4
case *immediate:
return 5
Expand Down
14 changes: 7 additions & 7 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ go 1.23.6
require (
github.com/aws/aws-sdk-go-v2 v1.36.5
github.com/aws/aws-sdk-go-v2/config v1.29.17
github.com/aws/aws-sdk-go-v2/service/s3 v1.83.0
github.com/aws/aws-sdk-go-v2/service/s3 v1.84.0
github.com/cespare/xxhash/v2 v2.3.0
github.com/cilium/ebpf v0.19.0
github.com/docker/go-connections v0.5.0
Expand Down Expand Up @@ -33,11 +33,11 @@ require (
go.opentelemetry.io/otel v1.37.0
go.opentelemetry.io/otel/metric v1.37.0
golang.org/x/arch v0.19.0
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b
golang.org/x/exp v0.0.0-20250717185816-542afb5b7346
golang.org/x/mod v0.26.0
golang.org/x/sync v0.16.0
golang.org/x/sys v0.34.0
google.golang.org/grpc v1.73.0
google.golang.org/grpc v1.74.1
)

require (
Expand Down Expand Up @@ -116,10 +116,10 @@ require (
go.opentelemetry.io/otel/trace v1.37.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
golang.org/x/crypto v0.37.0 // indirect
golang.org/x/net v0.39.0 // indirect
golang.org/x/text v0.24.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 // indirect
golang.org/x/crypto v0.38.0 // indirect
golang.org/x/net v0.40.0 // indirect
golang.org/x/text v0.25.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect
google.golang.org/protobuf v1.36.6 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
Expand Down
Loading