question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Interpret common ARM Linux Software Interrupts as a syscall function.

See original GitHub issue

Is your feature request related to a problem? Please describe. The following assembly gets decompiled to software_interrupt(0);

...
c0 70 a0 e3     mov        r7,#0xc0
00 00 00 ef     swi        0x0

Describe the solution you’d like In IDA, it properly parses the syscall to linux_eabi_syscall(__NR_mmap2, a1, a2, a3, a4, a5, a6, a7);

Describe alternatives you’ve considered N/A

Additional context N/A

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Reactions:7
  • Comments:15 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
Arcnorcommented, Sep 26, 2019

@kevinferrare Yeah, I’m planning on sharing it, after I fix a few things, including the one I reported.

I’ve also worked on creating a machine parseable list of interrupts, so it can be improved with the help of other people and it’s not hardcoded.

I’ll share both things at some point.

Read more comments on GitHub >

github_iconTop Results From Across the Web

4.6. Interrupt Handling - Understanding the Linux Kernel, 3rd ...
The interrupt handler executes several interrupt service routines (ISRs). Each ISR is a function related to a single device sharing the IRQ line....
Read more >
Interrupts & System Calls - COMPAS Lab
Types of interrupts: • External interrupt: caused by a hardware device, e.g., timer ticks, network card interrupts. • Trap: Explicitly caused by the...
Read more >
Linux ARM Shellcode - Part 1 - Syscalls
Linux ARM /EABI syscalls are invoked using a software interrupt. The function arguments go in registers R0-R6, the syscall number in register ...
Read more >
Interrupts and System Calls
How is this configured? 十 Kernel creates an array of Interrupt descriptors in memory, called Interrupt Descriptor Table, or IDT. 十 Can ...
Read more >
How the Linux kernel handles a system call - 0xax
Furthermore, system calls are implemented as software interrupts. ... this function calls the cpu_init function from the arch/x86/kernel/cpu/common.c source ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found