before
after

"Jinx is a vital tool to enable software developers to thrive
rather than merely survive in an increasingly parallel environment."

Cantor Fitzgerald

Why Do You Need Jinx?

 

Saves You Time
Jinx makes bugs happen faster and earlier in the software lifecycle, enabling you to focus on delivering better software. Now you can spend time delivering value to your customers instead of tracking down elusive bugs.
Saves You Money
Jinx reduces the amount of resources required to find bugs in your software. And, bugs caught earlier in the software development lifecycle cost less to fix.
Works the Way You Do
Jinx requires no changes to your development tools and testing practices and, instead, plugs right into them. Visual Studio, command line tools, debuggers, load testing tools...you name it, Jinx works with it.

 

"This is an absolutely priceless gift for developers writing multi-threaded code."

Electronic Arts

Makes You More Productive
Jinx works under the covers and amplifies the effectiveness of your development and testing methodology. You do everything the way you always have done, just do it with Jinx turned on and let us find your bugs.
Improves Security
Jinx uncovers concurrency errors, a potentially dangerous security attack vector for which the industry is woefully unprepared. In so doing, it reduces the risk of shipping mutli-threaded software that could be used for malicious purposes.
Gives You More Confidence
Jinx quickly finds bugs that can stay hidden for weeks or months, threatening your reputation and customers. With Jinx, there are no false positives. When Jinx finds a bug, it's definitely a bug.
 

 

 

 

"[Jinx] uses a fuzzy testing strategy to vary the timing of thread execution in a parallel program in order to force concurrency errors to happen, since parallel code that includes concurrency errors may run successfully for years, and only fail once in a blue moon. Jinx can summon up a blue moon in order to trap these hard-to-find bugs."

John Barr, 451 Group

How Does Jinx Work?

1 When activated, Jinx slips in above the multi-core processor (and below the operating system, device drivers, and applications) and virtualizes the entire system so that it can begin investigating for concurrency bugs.
2 Concurrent applications spawn numerous threads to execute in parallel. The timing of these threads is controlled by the system hardware and varies every time the program is run. Each thread can run at different speeds depending on a variety of factors.
3 Jinx intelligently samples execution time and analyzes each slice of execution for bugs.
4 Within each slice, Jinx simulates numerous alternate realities for thread timings.
5 When Jinx identifies a particular thread timing that will cause a bug, it forces that thread timing to actually happen.
6

As a result, Jinx makes your applications "unlucky" by forcing bugs to happen faster.

Once Jinx forces a bug to happen, it also pinpoints its exact cause so that it's easier to fix it and verify that the fix works.

Moreover, as Jinx simulates execution, it also gains tremendous insight into your code. Jinx presents this information about how your code interacts in an easy-to-understand Report.

 

 

"Corensic support of parallel programming through both multicore parallelism and Intel Core processors is welcome news for software developers."

James Reinders, Chief Evangelist, Intel Software Products

);