Home IT Linux Windows Database Network Programming Server Mobile  
           
  Home \ Linux \ Experience CoreCLR stack unwinding characteristics of initial implementation on Linux / Mac     - Findbugs installation documentation (Linux)

- LaTeX Getting Started Tutorial (Linux)

- Axel install plug under CentOS 5/6 acceleration yum downloads (Linux)

- Close Pycharm spell check (Programming)

- Repair Maven project developed default Maven Plugin folder (Linux)

- How to download apk file from the Google Play store on Linux (Linux)

- Do you know how to build the Linux kernel (Programming)

- Python 3 for instructions encoded string conversion (Programming)

- To install PXE + Kickstart under CentOS 6.x operating system (Linux)

- Linux user login and IP restrictions (Linux)

- PHP 7.0 Upgrade Notes (Linux)

- How to interactively create a Docker container (Server)

- JBoss7 configuration - Supports IPv4 and IPv6 dual-stack environment (Server)

- Linux Shell introduces (Linux)

- Kubernetes cluster deployment (Server)

- Android Touch message passing mechanism analysis (Programming)

- MongoDB 2.6 deployment replica set + partitions (Database)

- GRUB2 boot Ubuntu Manual (Linux)

- How to use OpenVPN and PrivacyIDEA build two-factor authentication for remote access (Server)

- Debian GNU / Linux service list acquisition, shutting down services or run (Linux)

 
         
  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:      
 
- Java singleton mode (Singleton mode) (Programming)
- Oracle bug Ora-04043 (Database)
- Phoenix agents use P2P WebRTC development (Programming)
- To install the Ubuntu Touch emulator on Ubuntu (Linux)
- Single-node Hadoop environment to build (Server)
- Execute command sentence can result in equipment permanently bricked in Linux laptop (Linux)
- GEC2440 easiest a kernel compile Linux2.6.30.4 (Programming)
- MySQL monitoring tool -Innotop (Database)
- Sublime Text 3 practical functions and shortcut keys used to collect (Linux)
- Examples of RAID levels and achieve Operational Details (Linux)
- The array of C language (Programming)
- To compile and install MySQL 5.7.7 RC under CentOS 7.1 (Database)
- Oracle GoldenGate Installation and Configuration Tutorial Introduction (Database)
- MongoDB uses aggregate, group, match mysql achieve in having (count (1)> 1) features (Database)
- CentOS installation Percona Server 5.5.42 compiling problem solve one case (Linux)
- MySQL Tutorial: About checkpoint mechanism (Database)
- Access clipboard content across multiple vim instances in a terminal (Linux)
- Figlet use (Linux)
- Linux install the Java Runtime Environment and the output Hello World under (CentOS) (Linux)
- Ubuntu 15.04 installation Powercommands 2.0 (Linux)
     
           
     
  CopyRight 2002-2016 newfreesoft.com, All Rights Reserved.