Home IT Linux Windows Database Network Programming Server Mobile  
           
  Home \ Linux \ Experience CoreCLR stack unwinding characteristics of initial implementation on Linux / Mac     - How to modify the Emacs Major Mode Shortcuts (Linux)

- Linux can modify the maximum number of open files (Linux)

- Linux port mapping system (routing and forwarding) (Server)

- Linux basic introductory tutorial ---- regex basis (Linux)

- The principle Httpclient4.4 (HttpClient Interface) (Programming)

- To install Python-Pip and Fabric under CentOS / Ubuntu (Linux)

- Windows 7 hard disk to install Ubuntu 14.10 (Linux)

- Linear table with a Java implementation of the iterator (Programming)

- CentOS 7.0 local address and configure yum source address priority (Linux)

- IntelliJ IDEA run in Mac10.9 and JDK7 environment (Linux)

- Copy U disk files to the Linux system on a virtual machine (Linux)

- Java Concurrency: synchronized (Programming)

- User rights management system under Linux (Linux)

- Windows Server 2012 R2 Datacenter install SQL Server 2016 CTP (Database)

- CentOS 6.5 installation using a data recovery software extundelete (Linux)

- Linux raw socket (Programming)

- Oracle Data Guard LOG_ARCHIVE_DEST_n optional attribute parameters (Database)

- Linux System Getting Started Learning: The Linux ac command (Linux)

- MySQL performance comparison of large amounts of data storage (Database)

- Deploy the project to the server from GitHub (Server)

 
         
  Experience CoreCLR stack unwinding characteristics of initial implementation on Linux / Mac
     
  Add Date : 2018-11-21      
         
       
         
  With stack unwinding characteristics, in order to obtain the call stack (call stack) information in .NET programs, to display the call stack information in the exception. Before this feature only on Windows have to realize, realize Linux / Mac on only recently added, using libunwind, see Merge branch 'unix_issue177'.

If you do not know stack unwinding, recommended reading C ++ Tutorial: Exceptions - Stack Unwinding.

Let's experience together.

Sample console program are as follows:

using System;
class Program
{
    static void A ()
    {
        B ();
    }

    static void B ()
    {
        The C ();
    }

    static void C ()
    {
        The D ();
    }

    static void D ()
    {
        Console.WriteLine (System.Environment.StackTrace);
    }

    static void Main (string [] args)
    {
        The A ();
    }
}
Corresponding code file named StackTrace.cs, compiled as StackTrace.exe.

Let's create the same console program in Visual Studio experience stack unwinding effect:

at System.Environment.GetStackTrace (Exception e, Boolean needFileInfo)
at System.Environment.get_StackTrace ()
at Program.D ()
at Program.C ()
at Program.B ()
at Program.A ()
at Program.Main (String [] args)
Then look at the effect did not materialize during stack unwinding.

Corerun StackTrace.exe runs on Linux, no console output.

# Runtime_linux / corerun app / StackTrace.exe
#
Runs on Mac corerun StackTrace.exe error:

sh-3.2 $ runtime_mac / corerun app / StackTrace.exe
Assert failure (unable to format)
/Users/dudu/git/dotnet/coreclr/src/vm/stackwalktypes.h
SPOffset> = pUnwindInfo-> RSPOffsetFromUnwindInfo
**** MessageBox invoked, title 'Assert failure (unable to format)' ****
  SPOffset> = pUnwindInfo-> RSPOffsetFromUnwindInfo
********

Assert failure (unable to format)
/Users/dudu/git/dotnet/coreclr/src/vm/stackwalktypes.h
FitsIn (pUnwindInfo-> RBPOffset + (SPOffset - pUnwindInfo-> RSPOffsetFromUnwindInfo))
**** MessageBox invoked, title 'Assert failure (unable to format)' ****
  FitsIn (pUnwindInfo-> RBPOffset + (SPOffset - pUnwindInfo-> RSPOffsetFromUnwindInfo))
********
Then look at the results stack unwinding after initial implementation.

On Mac and Linux running corerun StackTrace.exe results are as follows:

at System.Environment.GetStackTrace (Exception e, Boolean needFileInfo)
at System.Environment.get_StackTrace ()
at Program.Main (String [] args)
     
         
       
         
  More:      
 
- Realization of Linux operating system illegal IP censorship (Linux)
- Install minimize RHEL / CentOS 7 some things need to do (Linux)
- Virtual Judge environment to build and configure under Ubuntu (Server)
- When a software RAID data recovery and reconstruction of how failure (Linux)
- awk variables (Linux)
- Linux into single user mode to modify the administrator password (Linux)
- OpenSIPS offline messaging feature set (Server)
- Common Linux System Troubleshooting (Linux)
- Big Data Common Glossary (Linux)
- Using IE can also be easily remotely control the computer (Linux)
- Linux group account deletion, and other related operations (Linux)
- Android Custom View step (Programming)
- Supervisor Installation and Configuration (Server)
- Elixir: the future of programming languages (Programming)
- RPM package management under Linux (Linux)
- To install Oracle Database Details and FAQ Summary under CentOS (Database)
- Linux command line to put on your coat GUI (Linux)
- DRBD Principle and Features Overview (Server)
- Java memory area Explanation (Programming)
- Linux Kernel 4.2 Installation Instructions (Linux)
     
           
     
  CopyRight 2002-2016 newfreesoft.com, All Rights Reserved.